私は現在、あなたの助けが必要な特定の問題に行き詰まっています。私の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 ファイル コードに問題がある可能性が最も高いと思います