0

私は現在、あなたの助けが必要な特定の問題に行き詰まっています。私のasp.net Webサイトでこの特定の問題が発生しています。

なんらかの理由で、ユーザーがテキスト ボックスから .mdb ファイルに情報を保存しようとしても、受け入れられません。すべてが正常にコンパイルされ、すべての ID と文字列名を 4 重にチェックしたところ、すべてが .mdb、.c ファイル、および aspx.cs ページのテーブルにあるはずのものと一致するように見えます。

情報が入力される.aspxページは次のとおりです

 <asp:Label ID="lblFirstName1" runat="server" align="left" Text="First Name: " Width="125px"></asp:Label>
        <asp:TextBox ID="txtfirstName" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
            ControlToValidate="txtfirstName" ErrorMessage="First Name cannot be empty"></asp:RequiredFieldValidator>
        <br />

        <asp:Label ID="lblLastName1" runat="server" Text="Last Name: " Width="125px"></asp:Label>
        <asp:TextBox ID="txtlastName" runat="server"></asp:TextBox>
        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
            ControlToValidate="txtlastName" ErrorMessage="Last Name cannot be empty"></asp:RequiredFieldValidator>
        <br />


         <asp:Label ID="lblUserAddress1" runat="server" Text="Street Addres: " Width="125px"></asp:Label>
         <asp:TextBox ID="txtstreetAddress" runat="server"></asp:TextBox>
         <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ControlToValidate="txtstreetAddress"
             ErrorMessage="Address cannot be empty"></asp:RequiredFieldValidator>
         <br />
         <asp:Label ID="lblcity1" runat="server" Text="City: " Width="125px"></asp:Label>
         <asp:TextBox ID="txtcity" runat="server"></asp:TextBox>
         <asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" ControlToValidate="txtcity"
             ErrorMessage="City cannot be empty"></asp:RequiredFieldValidator>
         <br />
         <asp:Label ID="lblstate1" runat="server" Text="State: " Width="125px"></asp:Label>
         <asp:TextBox ID="txtstate" runat="server"></asp:TextBox>
         <asp:RequiredFieldValidator ID="RequiredFieldValidator7" runat="server" ControlToValidate="txtstate"
             ErrorMessage="State cannot be empty"></asp:RequiredFieldValidator>
         <br />
         <asp:Label ID="lblzipCode1" runat="server" Text="Zip Code: " Width="125px"></asp:Label>
         <asp:TextBox ID="txtzipCode" runat="server"></asp:TextBox>
         <asp:RequiredFieldValidator ID="RequiredFieldValidator8" runat="server" ControlToValidate="txtzipCode"
             ErrorMessage="Zip Code cannot be empty"></asp:RequiredFieldValidator>

これは、.mdb に保存するために使用している .cs ページからの情報です。

      public static bool Saveneworder(string Database, string firstName, string lastName, string streetAddress, string city, string state, string zipCode )
{

      bool recordSaved;

    // Create a new Oledb Transaction object
    OleDbTransaction myTransaction = null;

     try
    {
        // Create a New Connection Object to the Access Database
        OleDbConnection conn = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;" +
        "Data Source=" + Database);
        conn.Open();
        OleDbCommand command = conn.CreateCommand();
        string strSQL;

        // set the transaction object and start the transaction
        myTransaction = conn.BeginTransaction();
        command.Transaction = myTransaction;

          strSQL = "Insert into tblOrder " +
        "(firstName, lastName, streetAddress, city, state, zipCode) values ('" +
        firstName + "', '" + lastName + "', '" + streetAddress + "', '" + city + "', '" + state +
        "', '" + zipCode + "')";

          // set the command text of the command object
          command.CommandType = CommandType.Text;
          command.CommandText = strSQL;
          // Execute the insert statement
          command.ExecuteNonQuery();

          myTransaction.Commit();

          // Close the Database connection
          conn.Close();
          recordSaved = true;
    }

     catch (Exception ex)
     {
         //Rollback the transaction if some failure occurs
         myTransaction.Rollback();

         recordSaved = false;


     }

     return recordSaved;


}

これは、データをテキスト ボックスから orderverified ページに転送する最初の aspx.cs ファイルです。このページには、情報が投稿されなかった else ステートメントがリストされています。

  protected void btnSubmit_Click(object sender, EventArgs e)
{

    if (ValidateFields()) //if Validate fields method has returned true
    {
         Session.Add("txtfirstName", txtfirstName.Text);
        Session.Add("txtlastName", txtlastName.Text);
        Session.Add("txtstreetAddress", txtstreetAddress.Text);
        Session.Add("txtcity", txtcity.Text);
        Session.Add("txtstate", txtstate.Text);
        Session.Add("txtzipCode", txtzipCode.Text);


        Server.Transfer("orderverified.aspx");

}

この aspx.cs ファイルに情報を転送します

  protected void Page_Load(object sender, EventArgs e)
{
    //So here we are initializing text property of the textbox "txtVerifiedInfo" after fetching the
    //values from the session object

    txtVerifiedInfo.Text =   Session["txtfirstName"].ToString() +
   "\n" + Session["txtlastName"].ToString() +
   "\n" + Session["txtstreetAddress"].ToString() +
   "\n" + Session["txtcity"].ToString() +
   "\n" + Session["txtstate"].ToString() +
   "\n" + Session["txtzipCode"].ToString() 
                                                  ;

    // Check if the record is successfully saved in the tblOrder Table and prints the appropriate message in the text box txtVerifiedInfo
    if (clsDataLayer.Saveneworder(Server.MapPath("App_Data\\WSC_DB.mdb" ),
    Session["txtfirstName"].ToString(),
    Session["txtlastName"].ToString(),
    Session["txtstreetAddress"].ToString(),
    Session["txtcity"].ToString(),
    Session["txtstate"].ToString(),
    Session["txtzipCode"].ToString()  ))



    {
        txtVerifiedInfo.Text = txtVerifiedInfo.Text +
        "\nThe Order successfully submitted!";

    }
    else
    {
        txtVerifiedInfo.Text = txtVerifiedInfo.Text +
        "\n The order did not save, please return to the previous screen and verify all of your data is correct, thank you.";
    }    

最後のページ - Orderverified.aspx には、すべてのデータを明確に表示する複数行のテキスト ボックスがありますが、tblOrder に保存できなかったという else ステートメントが返されます。

非常に多くのコードを投稿して申し訳ありませんが、なぜこれが保存されないのか本当に困惑しています。

読んでくれてありがとう

さらにトラブルシューティングを行ったところ、firstName を除くすべてを除外しようとしましたが、まだ投稿されません。tblOrder に挿入する SQL ステートメントである .cs ファイル コードに問題がある可能性が最も高いと思います

4

2 に答える 2

0

OleDbConnection を使用したことはありませんが、.Parameters.AddWithValue() を使用する必要があるようです。この StackOverflow の回答を参照してください。

于 2013-06-21T00:56:22.847 に答える