Updatecommand更新结果返回影响值>0,但为什么数据还是没改变?
protected void OnRowUpdatingEvent(Object sender, GridViewUpdateEventArgs e)
{
//Response.Write("<script>alert('" + ds.Tables["图书借阅"].Rows[e.RowIndex]["借阅编号"].ToString() + "!')</script>");
int res = -1;
if (updateCmd == null || GridView1 == null)
return;
try
{
// for (int i = 0; i < 6; i++)
// Response.Write("<script>alert('" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[0].Controls[0])).Text.ToString().Trim() + "!')</script>");
updateCmd.CommandText = @"UPDATE 图书借阅 SET 读者编号=" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + ",图书编号=" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim()
+ ",借阅时间='" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() + "',应还时间='" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString().Trim() + "',剩余可续借次数=" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[5].Controls[0])).Text.ToString().Trim() + " WHERE 借阅编号=" + ds.Tables["图书借阅"].Rows[e.RowIndex]["借阅编号"].ToString() + ";";
updateCmd.Connection = conn;
res = updateCmd.ExecuteNonQuery();
//updateCmd.CommandText.Replace('\'', 'x');
//Response.Write("<script>alert(' res = " + updateCmd.CommandText + "!')</script>");
Response.Write("<script>alert(' res = " + res.ToString() + "!')</script>");
}catch(Exception ex)
{
Response.Write("<script>alert('" + ex.ToString() + "!')</script>");
}
GridView1.EditIndex = -1;
Bind();
}
protected void Bind()
{
adapter.SelectCommand.CommandText = @"SELECT * FROM 图书借阅";
if (ds.Tables["图书借阅"] != null)
ds.Tables["图书借阅"].Clear();
adapter.Fill(ds, "图书借阅");
GridView1.DataSource = ds.Tables["图书借阅"];
GridView1.DataBind();
}
返回受影响行数为1,但数据库中的值并没有改变是怎么回事?
{
//Response.Write("<script>alert('" + ds.Tables["图书借阅"].Rows[e.RowIndex]["借阅编号"].ToString() + "!')</script>");
int res = -1;
if (updateCmd == null || GridView1 == null)
return;
try
{
// for (int i = 0; i < 6; i++)
// Response.Write("<script>alert('" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[0].Controls[0])).Text.ToString().Trim() + "!')</script>");
updateCmd.CommandText = @"UPDATE 图书借阅 SET 读者编号=" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + ",图书编号=" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim()
+ ",借阅时间='" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() + "',应还时间='" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[4].Controls[0])).Text.ToString().Trim() + "',剩余可续借次数=" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[5].Controls[0])).Text.ToString().Trim() + " WHERE 借阅编号=" + ds.Tables["图书借阅"].Rows[e.RowIndex]["借阅编号"].ToString() + ";";
updateCmd.Connection = conn;
res = updateCmd.ExecuteNonQuery();
//updateCmd.CommandText.Replace('\'', 'x');
//Response.Write("<script>alert(' res = " + updateCmd.CommandText + "!')</script>");
Response.Write("<script>alert(' res = " + res.ToString() + "!')</script>");
}catch(Exception ex)
{
Response.Write("<script>alert('" + ex.ToString() + "!')</script>");
}
GridView1.EditIndex = -1;
Bind();
}
protected void Bind()
{
adapter.SelectCommand.CommandText = @"SELECT * FROM 图书借阅";
if (ds.Tables["图书借阅"] != null)
ds.Tables["图书借阅"].Clear();
adapter.Fill(ds, "图书借阅");
GridView1.DataSource = ds.Tables["图书借阅"];
GridView1.DataBind();
}
返回受影响行数为1,但数据库中的值并没有改变是怎么回事?
...全文
相关推荐
C#使用DataSet Datatable更新数据库的三种实现方法
**AcceptChanges的影响**:在调用AcceptChanges之前修改数据,Original值将与Current值同步。
DataAdapter是如何更新数据库数据的
DataTable dt = da_YB.Fill(new DataSet()).Tables[0];dt.Rows[0]["列名"] = "MF14";// 将更新后的数据同步回数据库da_YB.Update
SqlCommandBuilder如何实现批量更新
在实际应用中,开发者需要确保SELECTCommand查询返回的结果集仅包含一个表的数据。在使用SqlCommandBuilder进行批量更新时,需要遵循几个步骤:1.
scott笔记.doc
当需要更新数据库时,这些命令会被执行。3. **ExecuteMode**: 决定了查询的执行方式。Read用于返回数据行,Scalar返回单个值,NonQuery返回受影响的记录数。4.
C#中DataSet的用法(很详细)
更新数据库使用DataAdapter的Update方法,它会根据数据行的状态(如已修改、新增或已删除)执行相应的SQL命令(UpdateCommand、InsertCommand和DeleteCommand


