我使用以下代码将输入到网络表单的反馈添加到数据库中。
代码工作正常。但是当我试图删除这个声明时
SqlCommandBuilder objcb = new SqlCommandBuilder(objDa);
我收到错误,我的意思是它正在执行else部分。
任何人都可以告诉我SqlCommandBuilder的用途是什么吗?
protected void btnSubmit_Click(object sender, EventArgs e)
{
if (txtName.Text.Trim() == "")
{
Response.Write("<script>alert ('Name Field cannot be left blank')</script>");
return;
}
if (txtFeedBack.Text.Trim() == "")
{
Response.Write("<script>alert('FeedBack Field cannot be left blank')</script>");
return;
}
objSqlConnection.ConnectionString = connectionStringSetting;
objSqlConnection.Open();
try
{
SqlDataAdapter objDa = new SqlDataAdapter("select * from FeedBack", objSqlConnection);
SqlCommandBuilder objcb = new SqlCommandBuilder(objDa);
DataSet objDs = new DataSet("FeedBack");
objDa.Fill(objDs, "FeedBack");
DataRow dr = objDs.Tables["FeedBack"].NewRow();
dr[1] = txtName.Text;
dr[2] = txtAddress.Text;
dr[3] = txtCity.Text;
dr[4] = txtCountry.Text;
dr[5] = txtEmail.Text;
dr[6] = Convert.ToInt32(txtContactNo.Text);
dr[7] = txtFeedBack.Text;
objDs.Tables["FeedBack"].Rows.Add(dr);
objDa.Update(objDs, "FeedBack");
Response.Write("<script>alert('Your FeedBack has been submitted')</script>");
objSqlConnection.Close();
}
catch (Exception)
{
Response.Write("<script> alert('Error on Page. Please try after sometime')</script>");
objSqlConnection.Close();
}
是否有任何方法可以显示特定的错误消息,例如,如果用户输入字符串值而不是Integer值,它应该将消息显示为“输入字符串未以正确的格式输入?”
答案 0 :(得分:0)
永远不要使用catch (Exception)
。它隐藏了这个问题。如果抛出异常,则会出现严重错误。你需要了解它。
删除整个try / catch块(将代码保留在其中!)。然后再次运行您的代码。如果有异常,那么您将在错误页面上看到它。如果没有,则使用事件查看器在Windows事件日志中查找来自“ASP.NET”源的警告消息。它应该包含完整的例外。
答案 1 :(得分:0)
最后的答案是,你所说的话就是在后台做了很多事情。
它正在向DataAdapter添加insert,update和delete命令。因此,如果没有它,您将崩溃并刻录,除非您自己将这些命令添加到DataAdapter。