在ASP.NET中使用SqlCommandBuilder

时间:2009-10-03 05:21:01

标签: asp.net ado.net sqlcommandbuilder

我使用以下代码将输入到网络表单的反馈添加到数据库中。

代码工作正常。但是当我试图删除这个声明时

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值,它应该将消息显示为“输入字符串未以正确的格式输入?”

2 个答案:

答案 0 :(得分:0)

永远不要使用catch (Exception)。它隐藏了这个问题。如果抛出异常,则会出现严重错误。你需要了解它。

删除整个try / catch块(将代码保留在其中!)。然后再次运行您的代码。如果有异常,那么您将在错误页面上看到它。如果没有,则使用事件查看器在Windows事件日志中查找来自“ASP.NET”源的警告消息。它应该包含完整的例外。

答案 1 :(得分:0)

最后的答案是,你所说的话就是在后台做了很多事情。

它正在向DataAdapter添加insert,update和delete命令。因此,如果没有它,您将崩溃并刻录,除非您自己将这些命令添加到DataAdapter。