标题:求助,SQLiteDataAdapter更新到数据库中不成功的问题
只看楼主
yangmz
Rank: 2
等 级:论坛游民
帖 子:94
专家分:20
注 册:2013-4-2
结帖率:54.17%
已结贴  问题点数:20 回复次数:2 
求助,SQLiteDataAdapter更新到数据库中不成功的问题
编程环境:vb2010,System.Data.SQLite 1.0.113.0,win7 64  
本论坛上的也有人问了这个问题,我按照搜索的内容进行了修改,也还是不行

下面一段代码是连接一个数据库,然后定位到指定行,在某字段保存一个图片文件,然后计划更新到数据库中
    Imports System.Data.SQLite   
     Public salda_xmname As New SQLite.SQLiteDataAdapter
    Public ds As New DataSet()      '数据集  
    Public rowFind As DataRow      'treeview根据键值查找到项目数据库对象        

        Dim constr As String = "data source= D:\vbtest\mytest\data\qyglname.db"

        Dim SQLconn As New Data.SQLite.SQLiteConnection '定义数据库链接
        Dim sqlcmd As New SQLite.SQLiteCommand '定义查询操作
        Try
            SQLconn.ConnectionString = constr '链接数据库
            SQLconn.Open()
            sqlcmd.Connection = SQLconn
             = "select * from xmname"                                     ‘选择表名为xmname,填充到数据适配器中
 
            salda_xmname = New SQLite.SQLiteDataAdapter(, SQLconn)

        Finally
            If Not (SQLconn Is Nothing) Then SQLconn.Dispose()
            SQLconn = Nothing
            If Not (salda_xmname Is Nothing) Then salda_xmname.Dispose()
            salda_xmname = Nothing
        End Try
        salda_xmname.Fill(ds, "xmname")                                                                '从数据适配器填中充数据到数据集
        ds.Tables("xmname").PrimaryKey = New DataColumn() {ds.Tables("xmname").Columns("treedate")}   ‘指定主健
        rowFind = ds.Tables("xmname").Rows.Find(NodeNameKey)                                           ’查找变量为NodeNameKey,并定位到行

    ‘下段代码保存图片1.jpg 到字段 resut 中,
       Dim myfilestream As New ("D:\vbtest\mytest\GRAPHICS\1.jpg", IO.FileMode.Open)
        Dim data() As Byte
        ReDim data(myfilestream.Length - 1)
        myfilestream.Read(data, 0, myfilestream.Length)
        myfilestream.Close()
   
        rowFind("resut") = data           '数据流赋值到字段中,

       ’下段代码计划从数据适配器中把所作修改更新到数据库中。但未成功,这是怎么回事?      
        Dim cmdBuilder As New SQLiteCommandBuilder(salda_xmname)
   
          salda_xmname.Update(ds, "xmname")
         改成      
        salda_xmname.Update(ds.Tables("xmname").GetChanges())
        ds.Tables("xmname").AcceptChanges()
       也不行


[此贴子已经被作者于2021-5-19 15:00编辑过]

搜索更多相关主题的帖子: Data SQLite New 数据库 Dim 
2021-05-19 11:57
xyxcc177
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:26
帖 子:197
专家分:1249
注 册:2017-7-8
得分:20 
这是因为sqlite数据库没有主键,使用update命令进行修改时必须要有主键,就使用insert into命令插入记录
2021-05-20 14:44
yangmz
Rank: 2
等 级:论坛游民
帖 子:94
专家分:20
注 册:2013-4-2
得分:0 
谢谢,设置主健后,果然成功。
2021-05-21 08:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-505781-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.088619 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved