Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 当出现异常错误时,按钮无法保存到数据库_Asp.net_Database_Exception_Button_Save - Fatal编程技术网

Asp.net 当出现异常错误时,按钮无法保存到数据库

Asp.net 当出现异常错误时,按钮无法保存到数据库,asp.net,database,exception,button,save,Asp.net,Database,Exception,Button,Save,我创建了一个asp.net站点,其中包含3个文本框、1个下拉列表和一个保存按钮。每次单击它时,它都会返回一个类型为“System.NullReferenceException”的异常,该异常发生在Bon-Temps.dll中,但未在用户代码中处理 它在de代码行中给出此错误 DataRow drow=ds.Tables[OpdrachtGever].NewRow 我的问题是为什么 SqlConnection cnn = new SqlConnection(); cnn.Conne

我创建了一个asp.net站点,其中包含3个文本框、1个下拉列表和一个保存按钮。每次单击它时,它都会返回一个类型为“System.NullReferenceException”的异常,该异常发生在Bon-Temps.dll中,但未在用户代码中处理

它在de代码行中给出此错误 DataRow drow=ds.Tables[OpdrachtGever].NewRow

我的问题是为什么

 SqlConnection cnn = new SqlConnection();
       cnn.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["BT-1ConnectionString"].ConnectionString;
    cnn.Open();
    SqlCommand cmd = new SqlCommand();
    cmd.CommandText = "select * from  OpdrachtGever";
    cmd.Connection = cnn;
    SqlDataAdapter da = new SqlDataAdapter();
    da.SelectCommand = cmd;
    DataSet ds = new DataSet();
    da.Fill(ds, "OpdrachtGever");
    SqlCommandBuilder cb = new SqlCommandBuilder(da);
    DataRow drow = ds.Tables["OpdrachtGever"].NewRow();
    drow["Naam"] = TextBox1.Text;
    drow["Adres"] = TextBox2.Text;
    drow["PostCode"] = TextBox3.Text;
    drow["AantalPersonen"] = DropDownList1.SelectedItem;


    ds.Tables["OpdrachtGever"].Rows.Add(drow);
    da.Update(ds, "OpdrachtGever");

您已将表命名为

da.Fill(ds, " OpdrachtGever ");
             ^             ^
但是,你提到它的时候

DataRow drow = ds.Tables["OpdrachtGever"].NewRow();
没有任何空间

这条线上还有一个盗贼空间

ds.Tables["OpdrachtGever "].Rows.Add(drow);
                        ^

在表名中使用这些空格不是一个好主意,因为它们对我们人类来说没有意义,而且很容易忘记。但是,对于表集合的索引器,空格会起到不同的作用。因此,当您用错误或缺少的空格传递名称时,索引器无法找到您的表并返回null

编辑出一个但没有帮助解决第一个问题需要输入连接字符串的名称,而不是完整字符串。da.Fill上的相同问题。不要在表名周围加空格。将其改为,但它仍挂在同一行上。现在它在以下行关闭drow[AantalPersonen]=DropDownList1.SelectedItem;出现错误时,无法将“System.Web.UI.WebControl.ListItem”类型的对象强制转换为“System.IConvertible”类型。无法存储在AantalPersonen列中。预期的类型是Decimal。好吧,现在这是另一个错误。SelectedItem是一个对象,其确切性质取决于如何填充组合。