Asp.net 从SQL读取数据后无法更新数据
我在一个ASP.NETC网站上工作,我对它相当陌生,在用文本框更新SQL数据库时遇到了麻烦 如果页面加载时文本框为空,我可以使用文本框更新数据库,但如果我添加代码以最初将SQL数据从数据库拖到文本框中,则无法在提交时更改数据Asp.net 从SQL读取数据后无法更新数据,asp.net,sql,database,textbox,Asp.net,Sql,Database,Textbox,我在一个ASP.NETC网站上工作,我对它相当陌生,在用文本框更新SQL数据库时遇到了麻烦 如果页面加载时文本框为空,我可以使用文本框更新数据库,但如果我添加代码以最初将SQL数据从数据库拖到文本框中,则无法在提交时更改数据 protected void updatebutton_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection(ConfigurationManag
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();
}
}
我有它,所以页面需要一个登录会话,这是会话,可以忽略
使用这段代码,它从我希望更改的字段的SQL数据库中获取数据,并将其输入到页面加载时的文本框中
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();
如果我在输入页面加载数据后编辑文本框并单击submit,代码将转到
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.ExecuteOnQuery;命令并直接重定向到重定向
我唯一的想法是.ToString转换导致了这种情况,但我不确定
如果你有什么想法我很想听听
谢谢 你试过了吗
@模型,其中SID='+Label1.Text.Trim+' 检查页面是否正在页面加载事件中发回。仅在isPostback为false时加载文本框。如果没有,那么每次回发都会重新加载文本框,在更新之前丢失更改
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
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 Server工具组件中运行Sql Profiler并检查正在触发的Sql查询吗?不要像这样将数据放入Sql字符串中:选择*from Stock,其中SID='+Label1.Text+',这是邪恶的、错误的,并将导致您的应用被黑客攻击。您已经有了在代码中使用查询参数的示例。继续做,谢谢!我一整天都在看我的博客!只需要在正确的地方输入正确的代码。