CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

各位大虾帮看一下,更新Access数据库记录的问题。。。。

楼主eyych(2006)2005-04-02 21:55:52 在 .NET技术 / ASP.NET 提问

各位大虾帮看一下,更新Access数据库记录的问题。。。。  
   
   
  值也传的过去,可就是更新不了纪录,  
  它也不显示任何出错信息。。。。。。。!!!  
  郁闷阿,  
   
  SOS!!!  
   
   
   
  void   update1(object   sender,DataListCommandEventArgs   e)  
  {          
  string   connstr="provider=microsoft.jet.oledb.4.0;data   source="+Server.MapPath("my.mdb");  
          OleDbConnection   conn=new   OleDbConnection(connstr);  
  string   updateComm="update   class   set   class_name=@class_name,class_about=@class_about   where   class_id=@class_id";  
  OleDbCommand   comm=new   OleDbCommand(updateComm,conn);  
  comm.Parameters.Add("@class_id",OleDbType.VarChar,10).Value=((Label)e.Item.FindControl("class_id_u")).Text;  
  comm.Parameters.Add("@class_name",OleDbType.VarChar,10).Value=((TextBox)e.Item.FindControl("edit_class_name")).Text;  
  comm.Parameters.Add("@class_about",OleDbType.WChar).Value=((TextBox)e.Item.FindControl("edit_class_about")).Text;  
  conn.Open();  
  try  
  {  
  //Response.Write(((TextBox)e.Item.FindControl("edit_class_name")).Text);     可以获得值。。  
       
      comm.ExecuteNonQuery();  
      conn.Close();  
      class0.EditItemIndex=-1;  
      BindGrid();  
  }  
  catch(System.Data.OleDb.OleDbException   E)  
  {  
  Message.Text=E.ToString();         //   不显示任何错误信息。  
  }  
  }  
  </script>  
   
   
   
  <asp:Label   ID="Message"   runat="server"   ForeColor="#FF0000"   Font-Size="14"></asp:Label>  
   
  <asp:DataList   ID="class0"   runat="server"  
  AutoGenerateColumns="false"  
  OnUpdateCommand="update1"  
  OnEditCommand="edit1"  
  OnDeleteCommand="delete1"  
  OnCancelCommand="cancel1">  
   
  <headertemplate>  
  <table   cellpadding="2"   cellspacing="2"><tr   bgcolor="#F4F8FE">  
  <td>类名</td>  
  <td>修改</td>  
  <td>删除</td>  
  </tr>  
  </headertemplate>  
  <itemtemplate>  
  <tr   bgcolor="#F2F2F2">  
  <td><%#   DataBinder.Eval(Container.DataItem,"class_name")%></td>  
  <td>  
  <asp:LinkButton   runat="server"   Text="修改"   CommandName="edit"></asp:LinkButton>  
  </td>  
  <td>  
  <asp:LinkButton   runat="server"   Text="删除"   CommandName="delete"></asp:LinkButton>  
  <asp:Label   ID="class_id_d"   runat="server"   Visible="false"   Text='<%#   DataBinder.Eval(Container.DataItem,"class_id")%>'></asp:Label>  
  </td>  
  </tr>  
  </itemtemplate>  
   
   
  <edititemtemplate>  
  <tr><td   colspan="3">  
   
  <table   bgcolor="#F4F8FE">  
  <tr>  
  <td>  
  <asp:Label   ID="class_id_u"   runat="server"   Visible="false"   Text='<%#   DataBinder.Eval(Container.DataItem,"class_id")%>'></asp:Label>  
  </td></tr>  
   
  <tr>  
  <td   align="center">  
  <asp:TextBox   ID="edit_class_name"  
  Columns="12"   MaxLength="10"   TextMode="SingleLine"  
  runat="server"   Text='<%#   DataBinder.Eval(Container.DataItem,"class_name")%>'></asp:TextBox>  
  <asp:RequiredFieldValidator   ControlToValidate="edit_class_name"   runat="server"  
  ErrorMessage="*"></asp:RequiredFieldValidator>  
  <asp:LinkButton   runat="server"   Text="保存"   CommandName="update"></asp:LinkButton>  
  <asp:LinkButton   runat="server"   Text="放弃"   CommandName="cancel"></asp:LinkButton>  
  </td></tr>  
   
  <tr><td   align="center">  
  <asp:TextBox   TextMode="MultiLine"   ID="edit_class_about"   runat="server"  
  Text='<%#   DataBinder.Eval(Container.DataItem,"class_about")%>'   Rows="5"   Columns="22"   MaxLength="250"></asp:TextBox>  
   
   
  <asp:RequiredFieldValidator   runat="server"   ErrorMessage="*"  
  ControlToValidate="edit_class_about"></asp:RequiredFieldValidator>  
  </td></tr>  
  </table>  
   
  </td></tr>  
  </edititemtemplate>  
  <footertemplate>  
  </table>  
  </footertemplate>  
   
  </asp:DataList>  
   
   
   
   
  问题点数:20、回复次数:20Top

1 楼hackate(兰花开香入梦境,独思佳人亦飘然!!)回复于 2005-04-02 22:14:00 得分 10

Message.Text=E.Exception  
   
  是获得错误的。  
   
  我估计哄,估计你没有把拌定数据写在!IsPostBack事件中导致的。  
   
  我想你拌定数据库是写在page_load对吧,那么现在你应该在page_load加入  
   
  if(!IsPostBack)  
  {  
  //..这里加拌定数据的代码  
  }Top

2 楼eyych(2006)回复于 2005-04-02 22:44:55 得分 0

 
  不行啊,  
  我就是这样写的阿。  
   
  在线等。。。Top

3 楼tophifi(黑字先生)回复于 2005-04-02 23:13:02 得分 5

class是不是access的保留字啊,加上[]试试呢Top

4 楼eyych(2006)回复于 2005-04-02 23:22:36 得分 0

 
   
  还是不行啊,  
  没反应。。。。。  
   
  Help!!!Top

5 楼Jefflove(白马)回复于 2005-04-02 23:26:10 得分 0

你所有的FindControl中的项都能获得值么?Top

6 楼tophifi(黑字先生)回复于 2005-04-02 23:26:18 得分 0

点击了没反应???页面没提交???  
   
   
  不会button和事件的关联掉了吧Top

7 楼eyych(2006)回复于 2005-04-02 23:52:58 得分 0

FindControl中的项都能获得值,测试过了。。  
   
  对,页面没反应,但关联没错啊,都是"update1"Top

8 楼tophifi(黑字先生)回复于 2005-04-03 00:07:17 得分 0

到页面设计界面双击button再重新关联一次就行了Top

9 楼eyych(2006)回复于 2005-04-03 00:36:24 得分 0

 
  还是不行,,,,,  
  好像不是那的问题Top

10 楼tophifi(黑字先生)回复于 2005-04-03 02:01:28 得分 0

难道有数据验证控件?Top

11 楼cqcya()回复于 2005-04-03 09:57:44 得分 0

检查你的数据库是否有写权限Top

12 楼vrace(Warcraft III in 1.20)回复于 2005-04-03 11:08:22 得分 5

把   conn.Open();   写在   OleDbCommand   comm=new   OleDbCommand(updateComm,conn);   前面试试。Top

13 楼chenyun_424(求教的人)回复于 2005-04-03 11:36:01 得分 0

upTop

14 楼eyych(2006)回复于 2005-04-03 18:18:00 得分 0

 
   
  还是不行啊,办法都试过了,  
  检查了一遍又一遍。。。  
  那位还有高招??赐教,赐教。。。  
   
  Top

15 楼eyych(2006)回复于 2005-04-03 20:23:05 得分 0

!Top

16 楼eyych(2006)回复于 2005-04-04 14:18:57 得分 0

up!Top

17 楼selim152(麦麦)回复于 2005-04-05 09:44:34 得分 0

检查一下你的窗体代码Top

18 楼eyych(2006)回复于 2005-04-05 21:19:44 得分 0

 
   
  窗体代码没问题啊,一一对应。。  
  why?????????????  
   
   
  Top

19 楼eyych(2006)回复于 2005-04-05 22:04:36 得分 0

!Top

20 楼eyych(2006)回复于 2005-04-18 00:13:52 得分 0

 
  反复检查:  
   
  1、Access数据库权限完整。  
   
  2、函数名、各标签id都对。  
   
  3、直接输出:  
  Response.Write(((TextBox)e.Item.FindControl("edit_class_name")).Text);    
  等,可以获得值。  
   
  4、但,就是更新的时候:  
  string   updateComm="update   class   set   class_name=@class_name,class_about=@class_about   where   class_id=@class_id";  
  值就不知道跑哪去了,就是获得不了。。。  
   
  5、将  
  string   updateComm="update   class   set   class_name=@class_name,class_about=@class_about   where   class_id=@class_id";  
  直接改为:  
  string   updateComm="update   class   set   class_name='mmm',class_about='nnn'   where   class_id=@class_id";  
  是可以更新纪录的。。。  
   
  6、也不显示任何错误。。。  
   
  why???????????????????????????????!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!  
  烦死我了,如果解决不了,我再也不用这破datagrid更新了!!!!!!!!  
  Top

相关问题

  • 帮我看一下这条数据库更新语句,谢谢!
  • 数据库更新出错!那位大虾来看一下!谢谢了!!!
  • 数据库中添加记录问题,请帮我看一下错在哪里?
  • 数据库记录更新问题
  • [菜鸟在线求助]数据库添加记录不成功,请帮我看一下代码,谢谢!
  • 大家帮我看一下,为何改了数据库的记录,在datagrid却不能刷新?
  • 郁闷中,怎么更新不了记录,帮看一下
  • 数据库问题!不能更新指定记录!
  • 怎样用一个记录集去更新数据库
  • 更新数据库记录的问题?(100分)

关键词

  • 数据库
  • 页面
  • access
  • updatecomm
  • 更新
  • findcontrol
  • comm
  • 值
  • oledbcommand
  • oledbtype

得分解答快速导航

  • 帖主:eyych
  • hackate
  • tophifi
  • vrace

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo