请高手帮忙看看这段代码,提示修改成功,但数据还是没变,确定数据库连接没有问题,不知道问题出在哪儿!
protectedvoidButton1_Click(objectsender,EventArgse){SqlConnectionconn=newSqlConnectio...
protected void Button1_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
conn.Open();
using (SqlCommand myCommand = new SqlCommand("UPDATE Purchase SET supplier='" + supplier.Text.ToString() .Trim ()+ "',Pnum='" + Pnum.Text.ToString().Trim() + "',sortname='" + TextBox1.Text.ToString().Trim() + "',bid='" + bid.Text.ToString().Trim() + "' WHERE id=" + Request.QueryString["id"].Trim(), conn))
{
myCommand.ExecuteNonQuery();
}
conn.Close();
Response.Write("<script>javascript:alert('信息修改成功!');location.href='drug_list.aspx';</script>");
} 展开
{
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
conn.Open();
using (SqlCommand myCommand = new SqlCommand("UPDATE Purchase SET supplier='" + supplier.Text.ToString() .Trim ()+ "',Pnum='" + Pnum.Text.ToString().Trim() + "',sortname='" + TextBox1.Text.ToString().Trim() + "',bid='" + bid.Text.ToString().Trim() + "' WHERE id=" + Request.QueryString["id"].Trim(), conn))
{
myCommand.ExecuteNonQuery();
}
conn.Close();
Response.Write("<script>javascript:alert('信息修改成功!');location.href='drug_list.aspx';</script>");
} 展开
展开全部
你把SQL文打印出来扔到PLSQL里边去执行看看有没有更新。
你这样写的代码,只要代码不出现异常,无论数据库更新是否更新了数据(不更新任何数据也是一种成功的执行),程序都会走到"信息修改成功”这一块去。
ExecuteNonQuery()是无返回值的执行,其实也是有返回值的,返回的是本次执行数据库受影响的行数。你可以定义一个整形,接收这个返回值,看是不是0.
你这样写的代码,只要代码不出现异常,无论数据库更新是否更新了数据(不更新任何数据也是一种成功的执行),程序都会走到"信息修改成功”这一块去。
ExecuteNonQuery()是无返回值的执行,其实也是有返回值的,返回的是本次执行数据库受影响的行数。你可以定义一个整形,接收这个返回值,看是不是0.
追答
你第一个页面应该是一个gridview,每一行有一个超链接列,然后点超链接转到另一个页面去做更新操作,这没什么问题。
你所说的数据没有变是指这些个文本框里的值没有变还是数据库里的数据没有变?
你首先的确定你所拼接成的sql在数据库里执行有没有执行更新操作?
此外,接收上一个页面传过来值的这一块代码正确的做法是应该放在!IsPostBack里边的,这个属性表示页面加载的时候第一次执行,且只执行一次。因为如果不放在这个判断里边,其他的控件引起的回发,比如点一个按钮,都会执行page_load这个方法,那么这一块的文本框赋值相当于又从url串里边取了一次值重新赋值了一遍,也就是你虽然递交更新到数据库了,但是这些文本框里的值显示的还是上一个页面传过来的值。
不知道我说的是不是你所要问的问题。
展开全部
建议你跟踪一下断点,看一下你的Sql语句是不是对,要更新的值是新的还是旧的,另外把SQL语句拿到数据库里面执行一下。多数是sql语句的错误。
如果sql语句没问题的话,那就接受一下myCommand.ExecuteNonQuery()的返回值吧
如果sql语句没问题的话,那就接受一下myCommand.ExecuteNonQuery()的返回值吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看下你的接受值是否正确!不行的话调试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
修改成功的提示放在这里不管有没有修改每次都会运行的
换成 try catch 抛个异常出来看看哪出错了
换成 try catch 抛个异常出来看看哪出错了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询