它在第二個(目標).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 關注
- 105 瀏覽
添加回答
舉報
0/150
提交
取消