注册 登录
编程论坛 VB.NET论坛

请教高手,如何解决文本框绑定字段,更新数据后,修改值不能成功备份的问题

yangmz 发布于 2023-06-23 12:25, 501 次点击
编程环境:
在一个窗体有一个文本框,该文本框绑定一个sqlite数据表中的一个字段。
部分代码如下:
建立一个内存数据库
 SQLconn_mem.ConnectionString = "Data Source=:memory:;Version=3;New=true"   '链接内存数据库

添加一个表gcxx,并加入到数据集mainds中。
dim mainds As New System.Data.DataSet()   
dim salda_gcxx As New System.Data.SQLite.SQLiteDataAdapter
salda_gcxx = New SQLiteDataAdapter("select * from gcxx", SQLconn_mem)
salda_gcxx.MissingSchemaAction = MissingSchemaAction.AddWithKey
salda_gcxx.Fill(mainds, "gcxx")

’添加一行内容
       Dim gcxx_row As DataRow = mainds.Tables("gcxx").NewRow()
        gcxx_row.Item("gcmc") = "项目"
        mainds.Tables("gcxx").Rows.Add(gcxx_row)

‘绑定到一个字段
  workspace.gcmc.DataBindings.Add("Text", mainds, "gcxx.gcmc").WriteValue()  

‘修改文本框gcmc.text="aaaaaaaaaaa"
’发现 mainds.Tables("gcxx").Rows(0).item("gcmc")="aaaaaaaaaaa"

'通过数据适配器更新到库中,
       Dim cmdBuildergcxx As New System.Data.SQLite.SQLiteCommandBuilder(salda_gcxx)
        salda_gcxx.Update(mainds, "gcxx")
        mainds.Tables("gcxx").AcceptChanges()
发现mainds.Tables("gcxx").Rows(0).item("gcmc")的值还是"aaaaaaaaaaa"
运行到这里没有问题。

'把内存数据表复制到硬盘中。
    Dim SQLconn_db1 As New System.Data.SQLite.SQLiteConnection("Data Source=F:\3.db")
        SQLconn_db1.Open()
        SQLconn_mem.BackupDatabase(SQLconn_db1, "main", "main", -1, Nothing, 0)
        SQLconn_db1.Close()
查看f:\3.db,发现数据表gcxx的字段gcmc的值还是原来的值"项目",而不是"aaaaaaaaaaa"

这是怎么回事啊?            

1 回复
#2
厨师王德榜2023-06-25 15:49
需要知道你的数据结构,表是否有主键?
1