using System;
using System.Data.SQLite;
using System.Windows.Forms;
namespace WindowsFormsApp4
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
sqlite sqlite = new sqlite("devices", "dev");
}
}
class sqlite
{
//全域變數
SQLiteConnection m_dbConnection;
//建構式
public sqlite(string db_name, string table_name)
{
createNewDatabase(db_name);
connectToDatabase(db_name);
// 創表并創建欄位: name varchar(20), model varchar(20), sn varchar(20)
createTable(table_name);
// 插入資料 (name, model, sn)
insert(table_name, "小米", "米3", "sn123456");
// 查詢資料
Select(table_name);
}
//創建資料庫
void createNewDatabase(string db_name)
{
SQLiteConnection.CreateFile($"{db_name}.sqlite");
}
//創建一個連接到指定資料庫
void connectToDatabase(string db_name)
{
m_dbConnection = new SQLiteConnection($"Data Source={db_name}.sqlite;Version=3;");
m_dbConnection.Open();
}
//在指定資料庫中創建一個table
void createTable(string table_name)
{
string sql = $"create table {table_name} (name varchar(20), model varchar(20), sn varchar(20))";
SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
command.ExecuteNonQuery();
}
//插入一些資料
void insert(string table_name, string name, string model, string sn)
{
string sql = $"insert into {table_name} (name, model, sn) values ('{name}', '{model}', '{sn}')";
SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
command.ExecuteNonQuery();
}
//使用sql查詢陳述句,并顯示結果
void Select(string table_name)
{
string sql = $"select * from {table_name}";
SQLiteCommand command = new SQLiteCommand(sql, m_dbConnection);
SQLiteDataReader reader = command.ExecuteReader();
while (reader.Read())
MessageBox.Show(
"\tname: " + reader["name"] +
"\tmodel: " + reader["model"] +
"\tsn: " + reader["sn"]);
}
}
}

以上這段在一個臨時的新建的專案中單獨使用,全功能正常
// ===========================================================================
我把以上代碼整個復制到另外一個專案里就出錯,我找不到問題了,求教各位大神



uj5u.com熱心網友回復:
兩個專案都是在PM里面安裝的SQLite:install-package system.data.sqlite.x64
uj5u.com熱心網友回復:
先檢查Environment.Is64BitProcess 這個看看uj5u.com熱心網友回復:
安裝的是x64的,把專案也改成x64的
uj5u.com熱心網友回復:
這個是從哪里檢查?新手不太會...
uj5u.com熱心網友回復:
可能默認情況該 dll 未復制到運行目錄,手動復制過去試試。uj5u.com熱心網友回復:
sqlite需要兩個dll,x86和x64uj5u.com熱心網友回復:
dll中 的版本是多少?"Data Source={db_name}.sqlite;Version=3;"
uj5u.com熱心網友回復:
專案本身就是X64的
uj5u.com熱心網友回復:
dll中 的版本是多少?
"Data Source={db_name}.sqlite;Version=3;"
我把這句洗掉了也不行
uj5u.com熱心網友回復:
sqlite需要兩個dll,x86和x64
這個倒是有點區別,兩個專案都是PM安裝,然后正常using參考,唯一的區別還真就是能用的專案里面真有這兩個檔案,不能用的這個專案卻沒有這兩個檔案,我試著復制過來,結果還是不能運行
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/244973.html
標籤:C#
上一篇:c#如何實作統一解決方案下不同專案之間的相互參考問題?
下一篇:C# 實作cmd會出現視窗
