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

如何更新DataGrid中的记录?

楼主alpha368(海纳百川)2006-05-03 21:21:59 在 .NET技术 / VB.NET 提问

A窗体中有一个DataGrid控件,显示数据库表C中的所有记录,向B窗体中输入数据,单击B窗体的确定按钮,保存数据到表C并且更新A窗体中DataGrid控件中的数据。这个更新如何实现?向各位大侠请教具体代码。 问题点数:30、回复次数:8Top

1 楼starsoft2006()回复于 2006-05-04 08:14:30 得分 0

重新给datagrid绑定数据就可以了  
  dim   str   as   integer  
  dim   dt   as   new   datatable  
  str="select   *   from   c   "  
  dt=getdatatable(str)       'getdatatable是一个返回datatable的函数。  
  if   dt.rows.count<>   0   then  
          datagrid1.datasource=dt  
  else  
          datagrid1.datasource=nothing  
  endifTop

2 楼drk928(一起看斜阳)回复于 2006-05-04 10:29:07 得分 0

1,B保存后,根据你的部局,找到A窗体.{MDI,父窗体等.}  
  2,更新A的DATAGRID.DATASOURCETop

3 楼alpha368(海纳百川)回复于 2006-05-04 12:53:47 得分 0

单击B窗体中的保存按钮,保存B窗体中的数据,然后用下面的语句更新,但仍然不行:  
  Me.SqlDataAdapter1.Update(Me.DsMoneyInOut1)  
  Dim   frmB1   As   New   frmB  
  frmB1.DataGrid1.DataSource   =   DsMoneyInOut1.收支记录表  
                           
  Top

4 楼alpha368(海纳百川)回复于 2006-05-04 14:44:13 得分 0

哪位大侠帮帮小弟啊,在线急等!Top

5 楼D303365900()回复于 2006-05-10 09:16:40 得分 0

我也正为这问题犯愁   !!Top

6 楼starring(漂流⊙一组)回复于 2006-05-10 09:40:53 得分 0

在B窗体下的按钮事件里面添上这些应该可以的了,其中A.后面是你在A窗体里面对象。如;adapter   ds   .  
   
  还有一点     你要更新时SELECT     语句里面必须有不绑定表的主键  
  Try  
   
                          Dim   cBuilder   As   New   OleDbCommandBuilder(A.adapter)   '创建一个CommandBuilder对象  
                          A.adapter.UpdateCommand   =   cBuilder.GetUpdateCommand   '为数据适配器adapter的更新命令赋值  
                          A.adapter.Update(A.ds,   "Grade")   '更新数据集  
                        A.ds.Clear()   '清空当前数据集  
                          A.adapter.Fill(A.ds,   "Grade")   '重新绑定数据适配器  
                          DataGridView1.DataSource   =   A.ds.Tables(0).DefaultView     '在datagrid中显示更新后数据  
                          MsgBox("更新数据成功!",   MsgBoxStyle.OkOnly,   "请确认")   '提示更新数据成功  
                  Catch   sqlExc   As   Exception   '异常处理  
                          MessageBox.Show(Err.Description)  
                          Exit   Sub  
                  End   TryTop

7 楼starring(漂流⊙一组)回复于 2006-05-10 10:02:24 得分 0

'以下为模块中定义的变量  
          Public   Const   connstring   =   "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=C:\Documents   and   Settings\Administrator\桌面\1dbTT.mdb"  
          Public   conn   As   New   OleDbConnection(connstring)   '定义conn为连接数据库的实列  
          Public   adapter   As   OleDbDataAdapter     '定义数据适配器'  
          Public   ds   As   DataSet   '定义数据集'  
   
   
  ‘此为A窗体中绑定数据库的代码  
    Try  
                          Dim   strQuery   As   String  
                          strQuery   =   "select   id   as   序号,SendNumber   as   报文名   from   tab_DATA_Send     order   by   queueDateTime   desc"  
                          adapter   =   New   OleDbDataAdapter(strQuery,   conn)  
                          ds   =   New   DataSet  
                          adapter.Fill(ds,   "Grade")   '往适配器中添加数据集,表名为DOCTOR  
                          DataGridView1.DataSource   =   ds.Tables(0).DefaultView  
                  Catch   sqlExc   As   Exception   '异常处理  
                          MessageBox.Show(Err.Description)  
                          Exit   Sub  
                  End   Try  
   
   
                  '此为B窗体中按钮事件的代码  
                  Try  
                          Dim   strCommand   As   New   OleDbCommand  
                          Dim   strString   As   String  
                          strString   =   "insert   into   tab_DATA_Send   (SendNumber)   values("   &   "'"   &   TextBox1.Text   &   "')     "  
                          With   strCommand  
                                  .Connection   =   Conn  
                                  .CommandText   =   strString  
                                  .ExecuteNonQuery()  
                          End   With  
                          Dim   cBuilder   As   New   OleDbCommandBuilder(adapter)   '创建一个CommandBuilder对象  
                          adapter.UpdateCommand   =   cBuilder.GetUpdateCommand   '为数据适配器adapter的更新命令赋值  
                          adapter.Update(ds,   "Grade")   '更新数据集  
                          ds.Clear()   '清空当前数据集  
                          adapter.Fill(ds,   "Grade")   '重新绑定数据适配器  
                          DataGridView1.DataSource   =   ds.Tables(0).DefaultView     '在datagrid中显示更新后数据  
                          MsgBox("更新数据成功!",   MsgBoxStyle.OkOnly,   "请确认")   '提示更新数据成功  
                  Catch   sqlExc   As   Exception   '异常处理  
                          MessageBox.Show(Err.Description)  
                          Exit   Sub  
                  End   Try  
  Top

8 楼starring(漂流⊙一组)回复于 2006-05-10 10:13:30 得分 0

还有个更简单的,就是把你在B窗体的保存按钮事件中保存代码的后面加上重新绑定数据库的代码(也就是重新扫描数据库)就行了。也能更新  
   
  '以下为模块中定义的变量  
          Public   Const   connstring   =   "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=C:\Documents   and   Settings\Administrator\桌面\1dbTT.mdb"  
          Public   conn   As   New   OleDbConnection(connstring)   '定义conn为连接数据库的实列  
          Public   adapter   As   OleDbDataAdapter     '定义数据适配器'  
          Public   ds   As   DataSet   '定义数据集'  
   
   
  ‘此为A窗体中绑定数据库的代码  
    Try  
                          Dim   strQuery   As   String  
                          strQuery   =   "select   id   as   序号,SendNumber   as   报文名   from   tab_DATA_Send     order   by   queueDateTime   desc"  
                          adapter   =   New   OleDbDataAdapter(strQuery,   conn)  
                          ds   =   New   DataSet  
                          adapter.Fill(ds,   "Grade")   '往适配器中添加数据集,表名为DOCTOR  
                          DataGridView1.DataSource   =   ds.Tables(0).DefaultView  
                  Catch   sqlExc   As   Exception   '异常处理  
                          MessageBox.Show(Err.Description)  
                          Exit   Sub  
                  End   Try  
   
   
                  '此为B窗体中按钮事件的代码  
                  Try  
                          Dim   strCommand   As   New   OleDbCommand  
                          Dim   strString   As   String  
                          strString   =   "insert   into   tab_DATA_Send   (SendNumber)   values("   &   "'"   &   TextBox1.Text   &   "')     "  
                          With   strCommand  
                                  .Connection   =   Conn  
                                  .CommandText   =   strString  
                                  .ExecuteNonQuery()  
                          End   With  
                          Dim   strQuery   As   String  
                          strQuery   =   "select   id   as   序号,SendNumber   as   报文名   from   tab_DATA_Send     order   by   queueDateTime   desc"  
                          adapter   =   New   OleDbDataAdapter(strQuery,   Conn)  
                          ds   =   New   DataSet  
                          adapter.Fill(ds,   "Grade")   '往适配器中添加数据集,表名为DOCTOR  
                          Form4.DataGridView1.DataSource   =   ds.Tables(0).DefaultView     '在datagrid中显示更新后数据  
                          MsgBox("更新数据成功!",   MsgBoxStyle.OkOnly,   "请确认")   '提示更新数据成功  
   
                          MsgBox("更新数据成功!",   MsgBoxStyle.OkOnly,   "请确认")   '提示更新数据成功  
                  Catch   sqlExc   As   Exception   '异常处理  
                          MessageBox.Show(Err.Description)  
                          Exit   Sub  
                  End   Try  
   
   
  Top

相关问题

关键词

得分解答快速导航

  • 帖主:alpha368

相关链接

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

广告也精彩

反馈

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