对象引用未设置为由DBNull.Value引起的对象实例 - c#

SqlCommand objsql = new SqlCommand();
.
.
objsql.Parameters.AddWithValue("@Param1", 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,但不会。

注意:执行此行时,将抛出我上面提到的所有错误

valHolder = objSqlCommand.ExecuteScalar().ToString(); 

这是完整的错误:

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: 

我该怎么办?

参考方案

不要直接在ExecuteScalar()上调用ToString()。首先调用objSqlCommand.ExecuteScalar(),然后测试以查看该变量是否为空。这很有可能正在发生。

如果要调用存储过程,请确保Select SCOPE_IDENTITY()是存储过程的最后一行,否则将不返回最后一个自动编号。

.NET C#Webbrowser填充输入,不带ID或类名 - javascript

我需要在网络浏览器中填写一个输入,但这不起作用。我认为必须使用name属性来完成,但是怎么做呢?foreach (HtmlElement login in webBrowser1.Document.GetElementsByTagName("input")) { if (login.GetAttribute("name"…

ASP.NET-如何更改JSON序列化的方式? - javascript

我正在使用ASP.NET通过以下查询返回Json文件:public ActionResult getTransactionTotals(int itemID) { DBEntities db = new DBEntities(); var query = from trans in db.Transactions // Linq query removed …

Asp.Net:在服务器端还原DropDownList的客户端SelectedItem - c#

因此,我的页面上有一个dropDownList,其中包含数百个项目。用户可以通过在文本框中键入一些文本来过滤此DDL。然后对DDL进行相应的过滤(所有不包含输入文本的项目都将通过JavaScript删除)。然后,用户选择他的项目并按下按钮。通常,这将导致错误,因为DDL已更改并且ASP验证了PostBack数据。但是,使用EnableEventValidat…

如何在ASP.NET Page_Load事件中识别RadButton启动回发的原因? - c#

在我的ASP.NET页的Page_Load中,我试图确定某个按钮是否已单击并尝试回发:if (Page.IsPostBack) { if (Request.Params.Get("__EVENTARGUMENT") == "doStuff") doSomething(); } doStuff是标记内的JavaScrip…

java.net.URI.create异常 - java

java.net.URI.create("http://adserver.adtech.de/adlink|3.0") 抛出java.net.URISyntaxException: Illegal character in path at index 32: http://adserver.adtech.de/adlink|3.0 虽然n…