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()
是存储过程的最后一行,否则将不返回最后一个自动编号。
我需要在网络浏览器中填写一个输入,但这不起作用。我认为必须使用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异常 - javajava.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…