C# 以编程方式创建SQL数据库

C# 以编程方式创建SQL数据库,c#,sql-server,ado.net,C#,Sql Server,Ado.net,如何以编程方式创建SQL数据库(和表等) 我使用过SQLite,非常简单明了。但是在我看到的SQL示例中,每个人都避免以编程方式创建db(使用:createdatabase…) 下面是我以前使用的SQLite代码,用于连接数据库、执行查询和创建表(如果不存在): 我想知道的是,是否可以设置一个SQL数据库,并以与我使用SQLite类似的方式使用它。如果是的话,怎么做?为什么不可能呢?您需要首先连接到现有数据库(正如RBarryYoung在评论中提到的) 请阅读此处有关创建数据库选项的内容: 是的

如何以编程方式创建SQL数据库(和表等)

我使用过SQLite,非常简单明了。但是在我看到的SQL示例中,每个人都避免以编程方式创建db(使用:createdatabase…)

下面是我以前使用的SQLite代码,用于连接数据库、执行查询和创建表(如果不存在):


我想知道的是,是否可以设置一个SQL数据库,并以与我使用SQLite类似的方式使用它。如果是的话,怎么做?

为什么不可能呢?您需要首先连接到现有数据库(正如RBarryYoung在评论中提到的)

请阅读此处有关创建数据库选项的内容:

是的,你可以。基本上,您连接到一个预先存在的数据库中的SQL Server(通常使用tempdb或master),然后从那里执行
CREATE database
命令。然后,您应该将连接的数据库切换到新创建的数据库(可能更容易断开连接并重新连接)。然后继续你的其他CREATE语句,就像你已经做的那样。你测试存在前的方式在语法上是不同的,但我不知道为什么会投反对票。这是一个完全合理的问题,其正确答案并不十分明显。@rbaryyoung如何访问预先存在的“master”数据库?(我使用的是VS2010 IDE)它的连接字符串中有一个属性。根据您的连接字符串格式,它可能是
初始目录=
或只是
数据库=
。我终于让它工作了。谢谢你的回复,这并不适用。您需要连接到一个数据源,然后设置连接…到目前为止,我只有
sqlconnection=newsqlconnection(“如果不存在创建数据库[inventorydb]”…但正如我所说,我需要连接到一个数据源(因此在我的SQLite代码中使用了
SetConnection()
函数)。如何在SQL中做到这一点?正如RBarryYoung在对您的问题的评论中回答的那样,这取决于您的连接字符串。请查看此链接:
    //SET UP CONNECTION STRING
    private void SetConnection()
    {
        sqlconnection = new SQLiteConnection(@"Data Source= C:\Users\John\Desktop\database1.db; Version=3; Compress=True;");
    }

    //GENERAL 'EXECUTE QUERY' FUNCTION TO EXECUTE CREATECOMMAND QUERIES
    private void ExecuteQuery(string txtQuery)
    {
        SetConnection();
        sqlconnection.Open();
        sqlcmd = sqlconnection.CreateCommand();
        sqlcmd.CommandText = txtQuery;
        sqlcmd.ExecuteNonQuery();
        sqlconnection.Close();
    }

    //TABLE CREATED/LOADED WHEN 'ADD ITEM' PAGE LOADS
    private void add_Load(object sender, EventArgs e)
    {
        SetConnection();
        sqlconnection.Open();
        sqlcmd = sqlconnection.CreateCommand();
        sqlcmd.CommandText = "CREATE TABLE IF NOT EXISTS [table1] ([id] INTEGER PRIMARY KEY AUTOINCREMENT, [item] VARCHAR NOT NULL, [quantity] INTEGER NOT NULL)";
        sqlcmd.ExecuteNonQuery();
        sqlconnection.Close();
    }
IF NOT EXISTS (
SELECT * FROM sys.databases 
WHERE [name] = 'MyCreatedDatabase'
)
CREATE DATABASE MyCreatedDatabase