关于datagrid中数据更改如何批量将其更新到数据库中

laker0575 2005-07-28 11:09:23
我现在的做法是先将需要的数据一条条先插入到数据库中,同时又从数据库中绑定到datagrid中,完了在datagrid中更改一条数据就重新写到数据库中,过程很繁琐,而且很耗资源。我想能不能等在datagrid中把所有要更改的数据全部改完后一下子update到数据库中,但是不晓得怎么实现,望指点一二,最好给点例子。
...全文
239 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
laker0575 2005-07-28
  • 打赏
  • 举报
回复
to sf8989(锋(--->VB.NET)) :我用了你的方法,说未引用实例,还有Dim dsch As DataSet = ds.GetChanges(DataRowState.Added + DataRowState.Deleted + DataRowState.Modified)
什么意思,ds是不是我绑定到datagrid时的dataset呢?
hamadou 2005-07-28
  • 打赏
  • 举报
回复
一般来说更新的条件包含:
1。表本身存在主键
2。读取数据的sql语句包含该表的主键
3。生成了有效的更新逻辑。
还有就是如果单单从SQL语句出发来看,它是无法看出哪些记录被修改了的,因为你的修改是在程序中的。
laker0575 2005-07-28
  • 打赏
  • 举报
回复
to AntingZ(夕惕若).主建有的
AntingZ 2005-07-28
  • 打赏
  • 举报
回复
要想用da.Update(),你的表必须要有主键
iceqings 2005-07-28
  • 打赏
  • 举报
回复
学习~~~~~~~~~~~~~~~
sf8989 2005-07-28
  • 打赏
  • 举报
回复
寫錯了一點: dajockeybasicdata 應該是 da
sf8989 2005-07-28
  • 打赏
  • 举报
回复
取得DATASET 所變化的數據
Dim dsch As DataSet = ds.GetChanges(DataRowState.Added + DataRowState.Deleted + DataRowState.Modified)

更新方法
Private Sub savedata()
Try
Dim TableName As String
Dim strjockey As String
strjockey = "select * from " & TableName
Dim da As OleDbDataAdapter = New OleDbDataAdapter(strjockey, conn)
Dim cmbda As OleDbCommandBuilder = New OleDbCommandBuilder(dajockeybasicdata)
conn.Open()
da.Update(ds.Tables(TableName))
conn.Close()
ds.Tables(TableName).Clear()
Catch ex As Exception
MsgBox(ex.Message)
End Try

End Sub

注:更新方法中的TABLENAME 換成 DSCH 應該就行了
laker0575 2005-07-28
  • 打赏
  • 举报
回复
用循环将datatable中的数据一条条的通过SQL语句或存储过程更新到数据库中····这个跟我现在的一样啊,我是说应该有sql语句可以直接把有数据变动的直接update到数据库中的巴,具体我就不懂了,所有想问问
fengjianwei1982 2005-07-28
  • 打赏
  • 举报
回复
将table 存在Session中
public void SaveTableToSession(DataTable table)
{
Session[DataTableName]=table;
}

public DataTable GetTableFromSession()
{
DataTable table=(DataTable)Session[DataTableName];
if(table!=null)
{
return table;
}
else
{
//msglbl.Text="未能从Session中获取数据,可能Session已超时,请刷新或重新打开当前页面!";
return null;
}
}
adapter = fhd.GetDataAdapter(yhid,fhdh);
table=GetTableFromSession();
SqlCommandBuilder cmdbd=new SqlCommandBuilder(adapter);
adapter.Update(table);
zhilunchen 2005-07-28
  • 打赏
  • 举报
回复
要用循环将datatable中的数据一条条的通过SQL语句或存储过程更新到数据库中
cyhweb 2005-07-28
  • 打赏
  • 举报
回复
是不是把datagrid绑定到datatable,可以批量提交datatable.

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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