当前位置:编程学习 > C#/ASP.NET >>

datagridview的问题。

  Dim cn As System.Data.OleDb.OleDbConnection
        Dim da As System.Data.OleDb.OleDbDataAdapter
        Dim ds As New System.Data.DataSet
        Dim bs As New BindingSource
        cn = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;data source=D:\My Documents\accedb\jcdws.mdb;")
        cn.Open()
        da = New System.Data.OleDb.OleDbDataAdapter("select * from WenShu", cn)
        ds = New DataSet
        Dim tb As New DataTable
        da.Fill(tb)
        DataGridView1.Refresh()
        bs.DataSource = tb
        DataGridView1.DataSource = bs
        BindingNavigator1.BindingSource = bs

这是我用DATAGRIDVIEW制作的一个显示数据库,同时绑定BINDINGNAVIGATOR,用于浏览。

但我无论如何,都无法保存修改的数据 。

保存后的代码应该如何写呢?

--------------------编程问答-------------------- CSDN的大虾们呢? --------------------编程问答-------------------- 给你一个我的保存方法
        /// <summary>
        /// 写入文件
        /// </summary>
        public static void WriteLog(string logFile, string msg)
        {
            try
            {
                System.IO.StreamWriter sw = System.IO.File.AppendText(
                    LogPath + LogFielPrefix + logFile + " " +
                    DateTime.Now.ToString("yyyyMMdd") + ".Log"
                    );
                sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss: ") + msg);
                sw.Close();
            }
            catch
            { }
        } --------------------编程问答-------------------- 你应该要用到OleDbDataAdapter的Updata方法. --------------------编程问答--------------------
引用 3 楼 netfeiid 的回复:
你应该要用到OleDbDataAdapter的Updata方法.


da.update()
方法是没有问题。我也知道要用这个方法。问题是,如何把DGV的数据以表格的形式传回来。
da.update(datagridview1.getchanges())不行。
我前面用的da.fill(tb)
然后bs.datasource = tb

后面怎么把修改后的dgv,以表格形式传回da?

以前写过一个准确的,记得只有两句代码.
现在怎么都想不起来了。

--------------------编程问答--------------------
不用UPDATE只怕不行。我以前写过,肯定是要用UPDATE的。只是da.update(??),我就不知道怎么写了。

引用 2 楼 lenovo19913900 的回复:
给你一个我的保存方法
        /// <summary>
        /// 写入文件
        /// </summary>
        public static void WriteLog(string logFile, string msg)
        {
            try
            {
                System.IO.StreamWriter sw = System.IO.File.AppendText(
                    LogPath + LogFielPrefix + logFile + " " +
                    DateTime.Now.ToString("yyyyMMdd") + ".Log"
                    );
                sw.WriteLine(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss: ") + msg);
                sw.Close();
            }
            catch
            { }
        }
--------------------编程问答-------------------- CSDN的大神们都彻底消失了吗?这么简单的问题也没人回答? --------------------编程问答--------------------
da.update()的参数写的不对吧 --------------------编程问答-------------------- Public Class Form1
    Dim cn As System.Data.OleDb.OleDbConnection
    Dim da As System.Data.OleDb.OleDbDataAdapter
    Dim ds As New System.Data.DataSet
    Dim bs As New BindingSource
    Dim tb As New DataTable
    Dim cb As New OleDb.OleDbCommandBuilder
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        BindingNavigator1.Items("BindingNavigatorDeleteItem").Visible = False
        cn = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;data source=D:\My Documents\accedb\jcdws.mdb;")
        cn.Open()
        da = New System.Data.OleDb.OleDbDataAdapter("select * from WenShu", cn)
        ds = New DataSet
        da.Fill(tb)
        cb.DataAdapter = da
        DataGridView1.Refresh()
        bs.DataSource = tb
        DataGridView1.DataSource = bs
        BindingNavigator1.BindingSource = bs
    End Sub

    Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click
        da.Update(tb)
    End Sub
End Class


改成这个样子了,他说我“查询过于复杂?”
有没有别的办法?
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,