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

c#操作数据库问题

楼主tsys2000(☆唐僧☆)2006-07-01 08:33:04 在 .NET技术 / C# 提问

我调用OleDbCommand的ExecuteNonQuery对数据库做了删除操作.如何同步DataTable? 问题点数:20、回复次数:14Top

1 楼Knight94(愚翁)回复于 2006-07-01 08:37:43 得分 20

to   我调用OleDbCommand的ExecuteNonQuery对数据库做了删除操作.如何同步DataTable  
   
  如果你是用DataAdapter来通过DataTable更新数据库的话,你可以调用DataTable.AcceptChanges即可;  
   
  否则需要重新Fill。Top

2 楼tsys2000(☆唐僧☆)回复于 2006-07-01 09:34:42 得分 0

DataTable   myT   =   (DataTable)   dataGridx.DataSource;  
  if(myT.Rows.Count<1)  
  return;  
  string   strKey   =   (string)dataGridx[dataGridx.CurrentCell.RowNumber,0];  
  OleDbConnection   myConn   =   new   OleDbConnection(GetConnectionString());  
  myConn.Open();  
  string   myTableName   =   "我的表1";  
  OleDbCommand   myCom   =   new   OleDbCommand("DELETE   FROM   "   +   myTableName   +    
  "   WHERE   我的索引   =   ?",   myConn);  
  myCom.Parameters.Add("@CustomerID",   OleDbType.Char,   5,   "CustomerID").Value   =   strKey;  
  try  
  {  
  myCom.ExecuteNonQuery();  
  }  
  catch(Exception   ex)  
  {  
  MessageBox.Show(ex.ToString());  
  }  
   
   
  如何同步上面的myT???Top

3 楼tsys2000(☆唐僧☆)回复于 2006-07-01 09:42:20 得分 0

上面的表通过如下方式填充  
   
  OleDbConnection   myConn   =   new   OleDbConnection(GetConnectionString());  
  OleDbDataAdapter   custDA   =   new   OleDbDataAdapter();  
  custDA.MissingSchemaAction   =   MissingSchemaAction.AddWithKey;        
  string   myTableName   =   "我的表1";  
  string   mySelectQuery   =   "SELECT   *   FROM   "   +   myTableName;  
  custDA.SelectCommand   =   new   OleDbCommand(mySelectQuery,   myConn);  
  DataTable   myT   =   new   DataTable();  
  custDA.Fill(myT);  
   
  dataGridx.DataSource   =   myT;  
  Top

4 楼yumanqing(笨鸟)回复于 2006-07-01 09:43:23 得分 0

刷新显示,  
  DataTable   myT   =   (DataTable)   dataGridx.DataSource  
  即可Top

5 楼tsys2000(☆唐僧☆)回复于 2006-07-01 09:47:32 得分 0

如何刷新?给个代码呀?Top

6 楼kssys()回复于 2006-07-01 09:54:46 得分 0

用Command删除哪一行,在DataTable相应的删除,然后调用相应的方法。  
   
  myT.Rows[?].Delete();  
  myT.AcceptChange();Top

7 楼diandian82(点点(nothing))回复于 2006-07-01 09:57:06 得分 0

只能重新fill,或者你直接在数据集里面删除,然后updateTop

8 楼tsys2000(☆唐僧☆)回复于 2006-07-01 10:02:22 得分 0

操作者要是点击DataGrid的标题后重新排序,DataGrid和DataTable的index就不对应了..用myT.Rows[?].Delete();不行吧Top

9 楼tsys2000(☆唐僧☆)回复于 2006-07-01 10:06:05 得分 0

重新Fill是什么意思?在删除的后面加上  
  custDA.Fill(myT);  
  custDA.Update(myT);  
  Top

10 楼tsys2000(☆唐僧☆)回复于 2006-07-01 10:08:25 得分 0

我想实现的功能是,选中DataGrid的一行后,点击Button把这行删除(显示和数据库更新).Top

11 楼kssys()回复于 2006-07-01 10:37:36 得分 0

不一定要重新Fill  
  确定选中的行位置,然后调用该行的Delete方法。  
  接着使用DataTable.AcceptChange方法。Top

12 楼syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*)回复于 2006-07-01 11:12:30 得分 0

DataTable.AcceptChanges()Top

13 楼yuanarea(Sail before)回复于 2006-07-01 11:52:06 得分 0

乱命名的不看...myT   怎么看怎么象   C++模版,仔细一看   MyDataTable,还把Data剩了Top

14 楼zhzuo(秋枫)回复于 2006-07-02 13:51:13 得分 0

建议使用DataAdapter.Update(DataTable   )来做。Top

相关问题

关键词

得分解答快速导航

  • 帖主:tsys2000
  • Knight94

相关链接

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

广告也精彩

反馈

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