代码之家  ›  专栏  ›  技术社区  ›  Sam Erwin

如何使用Stask.DATA SQLITE数据提供程序在数据库项目中使用SQL脚本?

  •  0
  • Sam Erwin  · 技术社区  · 16 年前

    我有一个项目试图通过 System.Data.SQLite . 在我试图控制数据库版本的过程中,我继续在vs2008中创建了一个数据库项目。听起来不错吧?

    我创建了第一个表创建脚本,并尝试使用右键单击->在脚本上运行该脚本,得到以下错误消息:

    您正在使用的提供程序或数据源不支持此操作。

    有人知道是否有一种自动的方法,可以使用system.data.sqlite安装提供的提供程序,对数据库引用的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命令之外,我已经删除了所有内容。

    更新: 好的,正如robert harvey在下面指出的,这看起来像一个sql server存储过程。我进入服务器资源管理器并使用我的连接(从数据库项目)来执行他建议的创建表的操作。我可以生成SQL来创建表,它像这样出来:

    CREATE TABLE [Skills] (
        [SkillID] integer PRIMARY KEY NOT NULL,
        [SkillName] text NOT NULL,
        [Description] text NOT NULL
    );
    

    我可以很容易地复制它并将它添加到项目中(或者将它添加到另一个处理我的数据访问其余部分的项目),但是无论如何都要在构建上实现自动化吗?我想,既然sqlite在本例中是一个单独的文件,那么我也可以将构建的数据库保持在版本控制之下。

    思想?这个例子的最佳实践?

    更新: 我在想,既然我计划使用fluent nhibernate,那么我可以使用它的自动持久性模型来保持我的数据库在源代码控制方面的效率。思想?陷阱?我想我必须在源代码管理中单独保留初始填充插入,但它应该可以工作。

    2 回复  |  直到 14 年前
        1
  •  1
  •   John    14 年前

    我使用sqlite sql脚本构建了数据库,然后像这样将其输入sqlite3.exe控制台程序。

    C:\sqlite3.exe mydatabase.db<文件包含sqlitesqlcommands

    约翰

        2
  •  0
  •   Robert Harvey    16 年前

    嗯,您的脚本看起来像一个sql server存储过程。sqlite很可能不支持这个,因为

    1. 它不支持存储过程,并且
    2. 它不理解sql server t-sql

    sql实际上是一个伪标准。它在不同的供应商之间是不同的,有时甚至在同一个供应商的产品的不同版本之间也是不同的。

    也就是说,我不知道为什么你不能通过打开连接和命令对象来运行任何(SQLite兼容的)SQL语句来对付SQLite数据库,就像你将使用SQL Server一样。

    但是,由于您对数据库和sqlite还不熟悉,下面是您应该如何开始的。我想你已经安装了sqlite

    1. 在visual studio 2008中创建一个新的windows应用程序。数据库应用程序对您没有用处。

    2. 通过下拉“视图”菜单并选择“服务器资源管理器”,打开服务器资源管理器。

    3. 右键单击服务器资源管理器中的“数据连接”节点并单击“添加新连接”,创建新连接…

    4. 单击“更改”按钮

    5. 选择sqlite提供程序

    6. 给你的数据库一个文件名。

    7. 单击确定。

    新的数据连接应该出现在服务器资源管理器中。您可以通过右键单击表节点并选择添加新表来创建第一个表。