我有一個項目,我試圖通過System.Data.SQLite使用SQLite。在我試圖將數據庫保持在版本控制之下時,我繼續在VS2008中創建了一個數據庫項目。聽起來很好,對吧?如何使用System.Data.SQLite數據提供程序在數據庫項目中使用SQL腳本?
我創造了我的第一個表創建腳本,並嘗試使用右鍵單擊 - >上的腳本運行來運行它,我得到這個錯誤信息:
此操作不支持提供者或數據源您正在使用。
有誰知道是否有使用是對被引用數據庫SQLite數據庫的數據庫項目的一部分腳本自動方式,使用由System.Data.SQLite提供的提供商安裝?
我試過每個變化,我可以想到試圖讓腳本運行使用默認的運行或運行...命令。下面是腳本在它的最詳細和可能不正確形式:
USE Characters
GO
IF EXISTS (SELECT * FROM sysobjects WHERE type = 'U' AND name = 'Skills')
BEGIN
DROP Table Skills
END
GO
CREATE TABLE Skills
(
SkillID INTEGER PRIMARY KEY AUTOINCREMENT,
SkillName TEXT,
Description TEXT
)
GO
請注意,這是我在使用數據庫第一次嘗試,也是我碰過的SQLite的第一次。在我試圖讓它運行的時候,除了CREATE TABLE命令之外,我已經剝離了所有的東西。
UPDATE:好的,正如Robert Harvey指出的那樣,這看起來像一個SQL Server存儲過程。我進入了服務器資源管理器,並使用我的連接(來自數據庫項目)來完成他對創建表的建議。我可以生成SQL從創建表和它出來像這樣:
CREATE TABLE [Skills] (
[SkillID] integer PRIMARY KEY NOT NULL,
[SkillName] text NOT NULL,
[Description] text NOT NULL
);
我可以輕鬆地複製這一點,並把它添加到項目中(或將其添加到處理我的數據訪問,其餘的另一個項目),但無論如何要自動化這個構建?我想,因爲SQLite在這種情況下是單個文件,所以我也可以將構建的數據庫保存在版本控制下。
想法?這個實例的最佳實踐?我打算使用流利NHibernate,我可能只是使用它的自動持久性模型,以保持我的數據庫達到鼻菸,並有效地在源代碼管理。思考?陷阱?我想我將不得不分別在源代碼管理中保留最初的人口插入,但它應該起作用。
你能張貼腳本? – 2009-05-23 02:34:46
我不確定這很重要。我實際上認爲提供者並沒有實現Run或Run On ...功能。無論如何,我會發布劇本。 – 2009-05-23 02:51:22