Parameters.AddWithValue(“@参数”,value)方法

以前用command方法执行存储过程增加参数时,总是先用cmd.Parameters.Add方法来设置参数和参数类型,再用Parameters[0].Value来给参数赋值。以前的一个动作代码示例:

 1 string strConn = "Data Source=.;Initial Catalog=HISDB;Integrated Security=True";
 2 
 3             using( SqlConnection conn = new SqlConnection(strConn))
 4 
 5             {
 6 
 7                 conn.Open();
 8 
 9                 SqlCommand cmd = new SqlCommand("AuditMessageInsert", conn);
10 
11                 //设置命令类型为存储过程,没有设置的话会执行失败
12 
13                 cmd.CommandType = CommandType.StoredProcedure;
14 
15                 //设置参数名和类型
16 
17                 cmd.Parameters.Add("@Target", SqlDbType.NChar);
18 
19                 cmd.Parameters.Add("@Description", SqlDbType.NChar);
20 
21                 cmd.Parameters.Add("@Actor", SqlDbType.NChar);
22 
23                 cmd.Parameters.Add("@Time", SqlDbType.DateTime);
24 
25                 cmd.Parameters.Add("@Computer", SqlDbType.NChar);
26 
27                 //给参数赋值
28 
29                 cmd.Parameters[0].Value = "ATarget";
30 
31                 cmd.Parameters[1].Value = "Description";
32 
33                 cmd.Parameters[2].Value = "Actor";
34 
35                 cmd.Parameters[3].Value = DateTime.Now;
36 
37                 cmd.Parameters[4].Value = "PC-Computer";
38 
39                 cmd.ExecuteNonQuery();
40 
41             }

如果用Parameters.AddWithValue方法就不用这么麻烦了,可以直接加参数名和其值,不用再设置参数的类型,示例代码:

 1 string strConn = "Data Source=.;Initial Catalog=HISDB;Integrated Security=True";
 2 
 3             using( SqlConnection conn = new SqlConnection(strConn))
 4 
 5             {
 6 
 7                 conn.Open();
 8 
 9                 SqlCommand cmd = new SqlCommand("AuditMessageInsert", conn);
10 
11                
12 
13                 cmd.CommandType = CommandType.StoredProcedure;
14 
15                
16 
17        
18 
19                 //增加参数:名称与类型 且与表中参数的顺序没关系
20 
21                 cmd.Parameters.AddWithValue("@Actor", "Actor");
22 
23                 cmd.Parameters.AddWithValue("@Target", "Target");
24 
25                 cmd.Parameters.AddWithValue("@Description", "Description");
26 
27  
28 
29                 cmd.Parameters.AddWithValue("@Computer", "Computer");
30 
31                 cmd.Parameters.AddWithValue("@Time", DateTime.Now);
32 
33  
34 
35  
36 
37                 cmd.ExecuteNonQuery();
38 
39             }
原文地址:https://www.cnblogs.com/sunran/p/3884462.html