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

絶対に使用しないでくださいcatch (Exception)。それは問題を隠します。例外がスローされている場合は、重大な問題があります。あなたはそれについて学ぶ必要があります。

try / catchブロック全体を削除します(コードをその中に保持します!)。次に、コードを再度実行します。例外がある場合は、エラーページに表示されます。そうでない場合は、イベントビューアを使用して、Windowsイベントログで「ASP.NET」ソースからの警告メッセージを探します。完全な例外が含まれている必要があります。

于 2009-10-03T05:33:48.370 に答える
0

最終的な答えは、あなたが話している行はバックグラウンドでたくさんのことをしているということです.

挿入、更新、および削除コマンドを DataAdapter に追加しています。したがって、それらのコマンドを自分で DataAdapter に追加しない限り、それがないとクラッシュして燃えてしまいます。

于 2010-06-19T21:14:33.097 に答える