0

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

代码工作正常。但是当我尝试删除这个语句时

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();
    }

有没有办法显示特定的错误消息,例如如果用户输入字符串值而不是整数值,它应该将消息显示为“输入字符串没有以正确的格式输入?

4

2 回答 2

0

最终的答案是,您所说的那一行正在后台做一堆事情。

它将插入、更新和删除命令添加到 DataAdapter。因此,如果没有它,您将崩溃和烧毁,除非您自己将这些命令添加到 DataAdapter。

于 2010-06-19T21:14:33.097 回答
0

永远不要使用catch (Exception). 它隐藏了问题。如果抛出异常,则说明存在严重错误。你需要了解它。

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

于 2009-10-03T05:33:48.370 回答