GridView中编辑,更新后,还是原来的数据,怎么解决?
protectedvoidgvCategory_RowUpdating(objectsender,GridViewUpdateEventArgse){stringClas...
protected void gvCategory_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
string Class_id = gvCategory.DataKeys[e.RowIndex].Value.ToString();
string Class_name = ((TextBox)(gvCategory.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString();
Response.Write(Class_name);
string sqlStr = "update Category set Class_name ='" + Class_name + "' where Class_id=" + Class_id;
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "Provider=Microsoft.Jet.OleDb.4.0;" + "Data Source=C:\\Documents and Settings\\Administrator\\桌面\\DLYIELD_Company\\App_Data\\Data.mdb";
conn.Open();
OleDbCommand cmd = new OleDbCommand(sqlStr,conn);
cmd.ExecuteNonQuery();
cmd.Dispose();
conn.Close();
gvCategory.EditIndex = -1;
this.gvCategory.DataSource = ProductManager.getCategory();
gvCategory.DataBind();
}
认为代码没有错误,编译也不显示错误,运行点击更新后,数据库中还是原来的数据,并没有被修改,不知道原因,希望大家能帮我尽快解决,谢谢啦~ 展开
{
string Class_id = gvCategory.DataKeys[e.RowIndex].Value.ToString();
string Class_name = ((TextBox)(gvCategory.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString();
Response.Write(Class_name);
string sqlStr = "update Category set Class_name ='" + Class_name + "' where Class_id=" + Class_id;
OleDbConnection conn = new OleDbConnection();
conn.ConnectionString = "Provider=Microsoft.Jet.OleDb.4.0;" + "Data Source=C:\\Documents and Settings\\Administrator\\桌面\\DLYIELD_Company\\App_Data\\Data.mdb";
conn.Open();
OleDbCommand cmd = new OleDbCommand(sqlStr,conn);
cmd.ExecuteNonQuery();
cmd.Dispose();
conn.Close();
gvCategory.EditIndex = -1;
this.gvCategory.DataSource = ProductManager.getCategory();
gvCategory.DataBind();
}
认为代码没有错误,编译也不显示错误,运行点击更新后,数据库中还是原来的数据,并没有被修改,不知道原因,希望大家能帮我尽快解决,谢谢啦~ 展开
5个回答
展开全部
看代码貌似没什么颂核问题(其实我不太懂这个),你设置断野空掘点看看是亏升否运行了这段,我估计这段多半没运行。如果没有的话,那就是gridview的控件设置问题了,该事件触发不要用数据绑定的那些控件,用CommandField(编辑列里面的,前面有个+)下面的控件(我是这样弄的,其他的不会)。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数据取出来绑定的时候,一定要放在Ispostback里面,不扰亩明然,你修改之后单击耐州提交之后,又会从page_load开始,从新绑定你gridview中缓告的数据,你改了也等于没改!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
此种情况有如下可能:
1:SQL语句有问题。
该种可能只要查询数则笑据库数据即可判断。
2:GridView中的数据没有进行重新绑定。
该种可能用如枯携下代码:
public void bind()
{
string STconnection =System.Configuration.ConfigurationManager.AppSettings["ConStr"];
STconn = new SqlConnection(STconnection);
STconn.Open();
DataTable mydt = new DataTable();
SqlCommand mycomm = new SqlCommand(sql, STconn);
SqlDataAdapter myda = new SqlDataAdapter(sql, STconn);
myda.Fill(mydt);
GridView1.DataSource = myda;
GridView1.DataKeyNames = new string[] {"UserID"};
GridView1.DataBind();
STconn.Close();
}
重新进行数据绑定。
希望能帮到孙败含你。
1:SQL语句有问题。
该种可能只要查询数则笑据库数据即可判断。
2:GridView中的数据没有进行重新绑定。
该种可能用如枯携下代码:
public void bind()
{
string STconnection =System.Configuration.ConfigurationManager.AppSettings["ConStr"];
STconn = new SqlConnection(STconnection);
STconn.Open();
DataTable mydt = new DataTable();
SqlCommand mycomm = new SqlCommand(sql, STconn);
SqlDataAdapter myda = new SqlDataAdapter(sql, STconn);
myda.Fill(mydt);
GridView1.DataSource = myda;
GridView1.DataKeyNames = new string[] {"UserID"};
GridView1.DataBind();
STconn.Close();
}
重新进行数据绑定。
希望能帮到孙败含你。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你重新绑定了吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询