datagridview的问题。

[复制链接]
查看11 | 回复8 | 2021-1-27 06:21:41 | 显示全部楼层 |阅读模式
DimcnAsSystem.Data.OleDb.OleDbConnection
DimdaAsSystem.Data.OleDb.OleDbDataAdapter
DimdsAsNewSystem.Data.DataSet
DimbsAsNewBindingSource
cn=NewSystem.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;datasource=D:\MyDocuments\accedb\jcdws.mdb;")
cn.Open()
da=NewSystem.Data.OleDb.OleDbDataAdapter("select*fromWenShu",cn)
ds=NewDataSet
DimtbAsNewDataTable
da.Fill(tb)
DataGridView1.Refresh()
bs.DataSource=tb
DataGridView1.DataSource=bs
BindingNavigator1.BindingSource=bs
这是我用DATAGRIDVIEW制作的一个显示数据库,同时绑定BINDINGNAVIGATOR,用于浏览。
但我无论如何,都无法保存修改的数据。
保存后的代码应该如何写呢?

分 -->
回复

使用道具 举报

千问 | 2021-1-27 06:21:41 | 显示全部楼层
CSDN的大虾们呢?
回复

使用道具 举报

千问 | 2021-1-27 06:21:41 | 显示全部楼层
给你一个我的保存方法
///
///写入文件
///
publicstaticvoidWriteLog(stringlogFile,stringmsg)
{
try
{
System.IO.StreamWritersw=System.IO.File.AppendText(
LogPath+LogFielPrefix+logFile+""+
DateTime.Now.ToString("yyyyMMdd")+".Log"
);
sw.WriteLine(DateTime.Now.ToString("yyyy-MM-ddHH:mm:ss:")+msg);
sw.Close();
}
catch
{}
}
回复

使用道具 举报

千问 | 2021-1-27 06:21:41 | 显示全部楼层
你应该要用到OleDbDataAdapter的Updata方法.
回复

使用道具 举报

千问 | 2021-1-27 06:21:41 | 显示全部楼层
引用3楼netfeiid的回复:你应该要用到OleDbDataAdapter的Updata方法.
da.update()
方法是没有问题。我也知道要用这个方法。问题是,如何把DGV的数据以表格的形式传回来。
da.update(datagridview1.getchanges())不行。
我前面用的da.fill(tb)
然后bs.datasource=tb
后面怎么把修改后的dgv,以表格形式传回da?
以前写过一个准确的,记得只有两句代码.
现在怎么都想不起来了。

回复

使用道具 举报

千问 | 2021-1-27 06:21:41 | 显示全部楼层

不用UPDATE只怕不行。我以前写过,肯定是要用UPDATE的。只是da.update(??),我就不知道怎么写了。
引用2楼lenovo19913900的回复:给你一个我的保存方法
///
///写入文件
///
publicstaticvoidWriteLog(stringlogFile,stringmsg)
{
try
{
System.IO.StreamWritersw=System.IO.File.AppendText(
LogPath+LogFielPrefix+logFile+""+
DateTime.Now.ToString("yyyyMMdd")+".Log"
);
sw.WriteLine(DateTime.Now.ToString("yyyy-MM-ddHH:mm:ss:")+msg);
sw.Close();
}
catch
{}
}

回复

使用道具 举报

千问 | 2021-1-27 06:21:41 | 显示全部楼层
CSDN的大神们都彻底消失了吗?这么简单的问题也没人回答?
回复

使用道具 举报

千问 | 2021-1-27 06:21:41 | 显示全部楼层


da.update()的参数写的不对吧
回复

使用道具 举报

千问 | 2021-1-27 06:21:41 | 显示全部楼层
PublicClassForm1
DimcnAsSystem.Data.OleDb.OleDbConnection
DimdaAsSystem.Data.OleDb.OleDbDataAdapter
DimdsAsNewSystem.Data.DataSet
DimbsAsNewBindingSource
DimtbAsNewDataTable
DimcbAsNewOleDb.OleDbCommandBuilder
PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
BindingNavigator1.Items("BindingNavigatorDeleteItem").Visible=False
cn=NewSystem.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;datasource=D:\MyDocuments\accedb\jcdws.mdb;")
cn.Open()
da=NewSystem.Data.OleDb.OleDbDataAdapter("select*fromWenShu",cn)
ds=NewDataSet
da.Fill(tb)
cb.DataAdapter=da
DataGridView1.Refresh()
bs.DataSource=tb
DataGridView1.DataSource=bs
BindingNavigator1.BindingSource=bs
EndSub
PrivateSubToolStripButton1_Click(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesToolStripButton1.Click
da.Update(tb)
EndSub
EndClass

改成这个样子了,他说我“查询过于复杂?”
有没有别的办法?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行