Asp.net 当出现异常错误时,按钮无法保存到数据库
我创建了一个asp.net站点,其中包含3个文本框、1个下拉列表和一个保存按钮。每次单击它时,它都会返回一个类型为“System.NullReferenceException”的异常,该异常发生在Bon-Temps.dll中,但未在用户代码中处理 它在de代码行中给出此错误 DataRow drow=ds.Tables[OpdrachtGever].NewRow 我的问题是为什么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
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是一个对象,其确切性质取决于如何填充组合。