它在第二个(目标).db 数据库中正确创建了 Users 表,但是它没有使用原始 .db 数据库的 Users 表的数据填充它。这两个表是相同的。他们实际上什至都没有主键集。我需要将数据从原始表复制到目标表。我尝试了以下操作,但复制部分没有成功:public class DatabaseAccess{ private static string _connDatabaseStringUsers = "URI=file:c:/TSV3/TS" + "DemoUsers" + ".db; Version=3; Journal Mode=Off; Synchronous=Off;";}using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.Networking;using UnityEngine.SceneManagement;using System.Net;using System.Net.Sockets;using System.Text;using System.Linq;using Mono.Data.Sqlite;using System.IO;using System.Data;using System;public class GameInstance : Singleton<GameInstance> {private SqliteConnection _conn4;private SqliteConnection _conn5;public void Start(){ CreateTable();}public void CreateTable(){ _conn4 = new SqliteConnection(DatabaseAccess.ConnDatabaseStringUsers); _conn4.Open(); try { SqliteCommand cmd4 = new SqliteCommand("CREATE TABLE IF NOT EXISTS Users ('ID' INTEGER, 'FileNumber' TEXT, 'FamilyName' TEXT, 'Name' TEXT, 'ParentFolderID' INTEGER, 'AvatarSex' INTEGER, 'Role' INTEGER)", _conn4); cmd4.ExecuteNonQuery(); } catch (UnityException e) { Debug.LogError(e); } finally { _conn4.Close(); } CopyTable();}public void CopyTable(){ _conn5 = new SqliteConnection(DatabaseAccess.ConnDatabaseStringUsers); _conn5.Open(); try { SqliteCommand cmd5 = new SqliteCommand("SELECT * INTO Users IN 'TSDemo.db' FROM Users", _conn5); cmd5.ExecuteNonQuery(); } catch (UnityException e) { Debug.LogError(e); } finally { _conn5.Close(); } } }我希望将第一个 .db 数据库的用户表中的数据复制到第二个 .db 数据库的用户表中,但事实并非如此。但是,Unity 不会给我任何错误。正在创建表,但未向其中填充数据。
1 回答

慕工程0101907
TA贡献1887条经验 获得超5个赞
由于 SQLite 不支持,如果表不存在select into
,您可以使用:create table as select
create table dest as select * from source
或者insert into select
如果表存在或您创建它:
insert into dest select * from source
- 1 回答
- 0 关注
- 87 浏览
添加回答
举报
0/150
提交
取消