我目前正在爲我的控制檯應用程序使用此SQLite庫:http://system.data.sqlite.org/index.html/doc/trunk/www/index.wiki - 目前爲止,SELECT查詢一直正常,但這樣做INSERT正在導致我遇到問題,而我沒有找到了解決方案。System.Data.SQLite鎖定/共享衝突
我猜測代碼可能會重新工作,但我看不到如何?
代碼
public string NewChannel(string _channel)
{
SQLiteConnection m_dbConnection = new SQLiteConnection(m_connection);
using (var cmd = m_dbConnection.CreateCommand())
{
m_dbConnection.Open();
cmd.CommandText = "INSERT INTO channels (name) VALUES (@name)";
cmd.Parameters.AddWithValue("@name", _channel);
try
{
int result = cmd.ExecuteNonQuery();
return "New channel added: " + _channel;
}
catch (Exception ex)
{
Console.WriteLine(ex.InnerException);
return null;
}
}
}
錯誤
SQLite的誤差(10):延遲1375ms用於鎖定/共享衝突的SQLite
錯誤(14):os_win.c: 34909:(5)winOpen(c:\ db.sqlite-journal) - 訪問 被拒絕。 SQLite的錯誤(14):os_win.c:34909:(2)
winOpen(C:\ db.sqlite雜誌) - 系統找不到指定的文件
。 SQLite的誤差(14):在34917線無法打開文件
[118a3b3569] SQLite的誤差(14):放棄語句在7:[INSERT INTO 通道(名稱)VALUES(@name)]
它試圖寫入驅動器'c:'的根目錄下的文件。你程序運行的是哪個用戶?它是什麼類型的程序? (命令行,asp.net等)並說用戶有權寫入該位置? –
如果您寫入根驅動器,它們必須是「超級用戶」或更高級別的用戶。否則,該用戶的* Folder Permission *必須設置爲「讀取和寫入」權限。 – Greg
但是它爲什麼寫一個新文件?以管理員身份運行Visual Studio。 – Michael