update语句无法更新数据

CCCSharp 2010-05-05 01:06:56
.CS代码如下:可是当点击链接后数据却无法更新(querystring["update"]和querystring["id"]都是通过点击链接传来的)数据库是access 2003
if (Request.QueryString["action"]!=null && Request.QueryString["action"].ToString() == "update")
{
//int pid = Convert.ToInt32(Request.QueryString["id"]);
con = new OleDbConnection();
con.ConnectionString = "Provider=Microsoft.jet.Oledb.4.0;data source=" + Server.MapPath("~/app_data/#data.mdb");
con.Open();

sql = "update list set title='" + txtSongName.Text + "',singer='" + txtSinger.Text + "',content='" + txtReason.Text + "',username='" + txtAuthor.Text + "' where id= " + Convert.ToInt32(Request.QueryString["id"]); //(sql语句在一行内)
cmd = new OleDbCommand(sql, con);
cmd.ExecuteNonQuery();

}
.ASPX代码如下:
<a href="AjaxShowDetailEdit.aspx?action=update&id=<%=Request.QueryString["id"] %>">更新</a>
...全文
708 30 打赏 收藏 转发到动态 举报
写回复
用AI写文章
30 条回复
切换为时间正序
请发表友善的回复…
发表回复
yeyiop 2011-06-26
  • 打赏
  • 举报
回复
我也遇到楼主一样的问题,后来看if(!IsPostBack)就解决了,其实这问题以前我同学也遇到过,后来帮他解决了,这次轮到我,居然忘记了,当你修改数据之后,点击修改按键时,页面刷新,数据再次回到原来获取数据库的数据,这样你等于把原来的数据再次添加了进去
taotao945 2011-05-05
  • 打赏
  • 举报
回复
[color=#FF9900]lz你好,我遇到了跟你非常类似的情况,也是无法更新。

protected void gvFreight_RowUpdating(object sender, GridViewUpdateEventArgs e)
{

GridViewRow row = this.gvFreight.Rows[e.RowIndex];
string start = ((row.Cells[0].Controls[0]) as TextBox).Text;
string terminal = ((row.Cells[1].Controls[0]) as TextBox).Text;
string type = ((row.Cells[2].Controls[0]) as TextBox).Text;
string issue = ((row.Cells[3].Controls[0]) as TextBox).Text;
string oldID = gvFreight.DataKeys[e.RowIndex].Value.ToString();
string term = ((row.Cells[4].Controls[0]) as TextBox).Text; //有效日期
string sql = string.Format("update tb_Freight set Start='{0}',Terminal='{1}',FreightType='{2}',FBDate='{3}',Term='{4}'where ID={5} ", start, terminal, type, issue, term, oldID);
SqlConnection con = new SqlConnection("server=MyPC\\SQLEXPRESS;database=db_WL;uid=sa;pwd=huxuan");
try
{
con.Open();
SqlCommand com = new SqlCommand(sql, con);
com.ExecuteNonQuery();
con.Close();

}
catch (Exception ex)
{
Response.Write("数据库错误,错误原因:" + ex.Message);
}
gvFreight.EditIndex = -1;
bindFreight();
}


没有报任何错误,就是更新不了,急急急,多谢大侠指点
CCCSharp 2010-05-05
  • 打赏
  • 举报
回复
各位很热心,可是也请在回复之前仔细看看我的原帖和我的回复好吗?我是说,我检查过数据库了,好吧,还

就是我要更新的那个数据库里的那个表的那个行,数据还是原来的,没有任何更新,而我已经在点击‘更新’

前将文本框中的值改变了,运行时候也没有报任何错误。。。
hai_yang_09 2010-05-05
  • 打赏
  • 举报
回复
xuexi
sxiaohui8709253 2010-05-05
  • 打赏
  • 举报
回复
楼主 你看你app_data目录下的数据库 那个里头更新了没 是不是你看错了数据库
nigerenz 2010-05-05
  • 打赏
  • 举报
回复
你在执行这句前,cmd = new OleDbCommand(sql, con);
获取SQL的值,然后直接拿到数据库里面执行下,看行不行,然后再找问题
xxoo2007 2010-05-05
  • 打赏
  • 举报
回复
看下数据库是不是只读的。
claymore1114 2010-05-05
  • 打赏
  • 举报
回复
更后腰重新绑定一下数据
CCCSharp 2010-05-05
  • 打赏
  • 举报
回复
点‘更新’后也不报错,就是无法更新数据。。。
CCCSharp 2010-05-05
  • 打赏
  • 举报
回复
我仔细检查过了,每次点“更新”后数据库中的对应行还是没有被更新,且数据库主键就是 id 列,是自动编号列,数据库连接也正确,我把整页的代码都仔细看了N遍了,也没有发现有什么错的地方,可是就是数据无法更新,Request.QueryString["id"]也是有值的,到底问题出在哪呀
bojiansky 2010-05-05
  • 打赏
  • 举报
回复
Request.QueryString["id"]); 这个有值吗?
xrongzhen 2010-05-05
  • 打赏
  • 举报
回复
错误详细信息
remymartin 2010-05-05
  • 打赏
  • 举报
回复
跟踪一下看看主键值是否是空的
HolyPlace 2010-05-05
  • 打赏
  • 举报
回复
1.调试看值是否都有
2.数据库连接是否正确
3.检查数据库中是否有符合条件记录
4.执行完之后看数据库中数据是否更新了只是前台显示没有重新绑定
ciznx 2010-05-05
  • 打赏
  • 举报
回复
你可以试试自己访问一下 AjaxShowDetailEdit.aspx?action=update&id=<%=Request.QueryString["id"] 这个URL,然后看看能获得什么错误,再针对错误做一些处理。
可能的原因是:

数据库文件路径不准确
之前已打开的连接未正确关闭
没有与你正在更新的ID的记录需要更新
没有将需要更新的数据传送到处理页
xujun5031 2010-05-05
  • 打赏
  • 举报
回复
帮顶~~~~~~
zekelove 2010-05-05
  • 打赏
  • 举报
回复
跟踪一下sql的字符串,看看是否存在值~
hao2629 2010-05-05
  • 打赏
  • 举报
回复
观摩 拿分走人
qq2013 2010-05-05
  • 打赏
  • 举报
回复
报的什么错?
CCCSharp 2010-05-05
  • 打赏
  • 举报
回复
我自己把问题解决了,是这样的:
一:向文本框中加载数据库中数据的代码块要放在(if(!IsPostBack))中是没错,我先是这样做了,但是还是没成功。
二:于是我开始思考我的更新数据的代码的问题,后来终于想到是不是因为我的“更新”不是由按钮触发而是由点击超级链接触发的原因,因为如果是点击超级链接发送QueryString的话那么页面是被认为是重新加载而非回发,既然不是回发,那么它就符合(!IsPostBack),继而在点击超级链接后同样会执行if(!IsPostBack)代码块中的代码,而这样的话(if(!IsPostBack))的限定也就没有用了,文本框中的值也就又重新从数据库未更新前的状态下加载,如此一来,且不是更新后还是原来的数据吗?
三:因此我把超级链接改为标准asp.net按钮,然后在按钮的单击事件中写更新的代码,问题终于解决。
四:我是自学的,因此很多概念都没有搞清楚,造成了这个错误。
五:谢谢各位的热心帮助,可是你们可能也粗心了一点,我在原帖中说过:“querystring["update"]和querystring["id"]都是通过点击链接传来的)”,结果似乎没有人仔细看。
六:再次感谢...我耗费了两天的时间呀!
加载更多回复(10)

62,025

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧