我正在开发一个 ASP.NET C# 网站(我对它还很陌生),并且在使用文本框更新 SQL 数据库时遇到了麻烦。
如果页面加载时文本框为空,我可以使用文本框更新数据库,但是如果我最初添加代码以将 SQL 数据从数据库拖到文本框中,则我无法在提交时更改数据。
protected void updatebutton_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["overlandconnectionstring2"].ConnectionString);
con.Open();
string insCmd = "UPDATE Stock SET [make] = @make, [model] = @model where SID ='" + Label1.Text + "'";
SqlCommand editUser = new SqlCommand(insCmd, con);
editUser.Parameters.AddWithValue("@make", make.Text);
editUser.Parameters.AddWithValue("@model", model.Text);
try
{
editUser.ExecuteNonQuery();
con.Close();
Response.Redirect("../stockkey1.aspx");
}
catch (Exception)
{
Response.Write("<br/>Something really bad happened, Please try again<br/>");
}
finally
{
con.Close();
}
}
我的更新代码是否可以正常工作,但如果我将其添加到页面加载中则不起作用。
protected void Page_Load(object sender, EventArgs e)
{
if (Session["New"] != null)
{
Label2.Text = Session["New"].ToString();
SqlConnection con1 = new SqlConnection(ConfigurationManager.ConnectionStrings["overlandconnectionstring2"].ConnectionString);
con1.Open();
SqlDataReader myReader = null;
SqlCommand myCommand = new SqlCommand("select * from Stock where SID='" + Label1.Text + "'", con1);
myReader = myCommand.ExecuteReader();
while (myReader.Read())
{
make.Text = (myReader["make"].ToString());
model.Text = (myReader["model"].ToString());
}
con1.Close();
我有它,因此该页面需要一个登录会话,该会话是会话,可以忽略。
使用此代码,它从我希望更改的字段的 SQL 数据库中获取数据,并将其输入到页面加载时的文本框中。
如果我在输入页面加载数据后编辑文本框并单击提交,则代码将转到
try
{
editUser.ExecuteNonQuery();
con.Close();
Response.Redirect("../stockkey1.aspx");
}
catch (Exception)
{
Response.Write("<br/>Something really bad happened, Please try again<br/>");
}
finally
{
con.Close();
}
正如预期的那样,但没有失败并显示响应,但错过了 editUser.ExecuteNonQuery(); 命令并直接重定向到重定向。
我唯一的想法是 .ToString 转换导致了这种情况,但我不确定。
如果你有任何想法,我很想听听他们...
谢谢你!!