SqlCommand objsql = new SqlCommand();
.
.
objsql.Parameters.AddWithValue("@Param1", DBNull.Value);
.
.
.
我得到一个特殊的错误引起的对象的实例:对象引用未设置为DBNull.Value
,如果我做
“不设置到对象的实例对象引用” :
objsql.Parameters.AddWithValue("@PaymentMethodID", null);
我得到以下错误: 的参数化查询 '(@SupplierQuoteID INT,@ PaymentMethodID为nvarchar(4000),@ DUEDATE d' 预计参数 '@PaymentMethodID',这未提供。“}
PaymentMethodID是表中的列中的一个列,其中的列为空。发生在这里
此错误:
string valHolder = null;
valHolder = objSqlCommand.ExecuteScalar().ToString();
singleValue = Convert.ToInt32(valHolder);
一旦objSqlCommand.ExecuteScalar()的ToString();被执行,错误被抛出。 记录被插入到表中但ExecuteScalar()不返回任何 值!它应该返回当前最新的自动递增PK,但它不会。
注:
System.NullReferenceException was caught
Message="Object reference not set to an instance of an object."
Source="........"
StackTrace:
at ......DAL.ExecuteSQL(SqlCommand sqlCmd, String typeOfExecution) in C:\Users\....\Desktop\........\DAL.cs:line 136
InnerException:
我该怎么办:当执行
valHolder = objSqlCommand.ExecuteScalar().ToString();
这是完全错误此行中我上面已经提到的所有错误抛出?
objSqlCommand.ExecuteScalar()是什么值? – empi 2010-07-12 18:54:49
什么sql语句可以有参数等于null,你可以告诉我你的选择语句或类似的东西? – 2010-07-12 18:54:51
正如Jeremy(下图)和Waleed(上图)所示,似乎你的C#很好,问题在于你的SQL。 – 2010-07-12 19:08:07