SqlCommand1.Parameters.Add方法,一共有6次重载的方法,我不太明白以下两种方法有什么区别?第一种:
SqlCommand1.Parameters.Add(参数名称,参数类型,参数长度,参数所在列的名字);
然后再SqlCommand1.Parameters["参数名称"].value=参数的值;第二种:
SqlCommand1.Parameters.Add(参数名称,参数值);以上两种SqlCommand均采用存储过程,请问平常大家用的是哪种?这两种有什么具体区别?是不是第一种比第二种"安全"?如果是的话,安全在哪一点呢?
SqlCommand1.Parameters.Add(参数名称,参数类型,参数长度,参数所在列的名字);
然后再SqlCommand1.Parameters["参数名称"].value=参数的值;第二种:
SqlCommand1.Parameters.Add(参数名称,参数值);以上两种SqlCommand均采用存储过程,请问平常大家用的是哪种?这两种有什么具体区别?是不是第一种比第二种"安全"?如果是的话,安全在哪一点呢?
否则它根据你得value来生成参数类型长度会引起一定得问题
public SqlParameter(string, SqlDbType);
比较:
public SqlParameter(string, object);这两个方法中的最后一个有可能是同一个值,这们的话系统就不知道用哪一个了,所以从这个角度来说用第一种更好一些,但是有时确定不会出现第二个参数相同的情况,用第二种更直接,但我喜欢用第一种方式来作:)
public SqlParameter(string, SqlDbType);
比较:
public SqlParameter(string, object);这两个方法中的最后一个有可能是同一个值,这们的话系统就不知道用哪一个了,所以从这个角度来说用第一种更好一些,但是有时确定不会出现第二个参数相同的情况,用第二种更直接,但我喜欢用第一种方式来作:)
一般使用在SqlAdapter.Update的时候吧
参数所在列的名字就是DataTable中对应的ColumnNameSqlCommand1.Parameters.Add(参数名称,参数值);
这个没有什么不好的,对于存储过程而言
-----------------------SqlParameter 构造函数 (String, Object) [C#]
....备注
当在 value 参数中指定 Object 时,SqlDbType 将从 Object 的 .NET Framework 类型推断出。请小心使用 SqlParameter 构造函数的这个重载来指定整数参数值。因为此重载接受 Object 类型的 value,所以当此值为零时,必须将整数值转换为 Object 类型,如下面的 C# 示例所示。Parameter = new SqlParameter("@pname", Convert.ToInt32(0));如果不执行该转换,则编译器将认为您尝试调用 SqlParameter (string, SqlDbType) 构造函数重载。
来学习学习听听前辈的意见
我感觉这一种最好用,一行就能解决,写成两行太麻烦了,有些写成三行的还要定义一个变量,更长。