如何使用 C# 创建 SQL Server 2012 数据库?

Posted

技术标签:

【中文标题】如何使用 C# 创建 SQL Server 2012 数据库?【英文标题】:How to create SQL Server 2012 database with C#? 【发布时间】:2013-09-20 19:08:39 【问题描述】:

我正在使用 SQL Server 2012 为数据库创建一个系统,但是当这个系统第一次在计算机上启动时,我希望系统为我创建数据库和表,而不是创建本手册。

如何使用 C# 创建数据库?以及如何设置连接字符串?因为通常我在连接字符串中设置数据库名称,但现在,我需要先创建数据库

【问题讨论】:

太宽泛了。近距离投票。检查documentation 首先使用 EntityFrameWork 代码 您是如何分发程序的,您是使用安装程序,单击一次,还是只是将编译好的exe复制到计算机?另外,您如何访问数据库,如果您使用的是 EntityFramework,它会内置一些东西来为您创建数据库,但如果您只是使用 ADO.net,您可能需要一个安装脚本。 @ScottChamberlain 我只想将编译好的 exe 复制到电脑上 @RaimondKuipers 我会研究这个,非常感谢 【参考方案1】:

您可以使用 SQL 脚本,将数据库名称留空。示例代码在这里:

static void Main(string[] args)

  using (var conn = new SqlConnection("data source=DBServer; uid=UserName; pwd=Password;"))
  
    using (var cmd = new SqlCommand())
    
      conn.Open();
      cmd.Connection = conn;
      cmd.CommandText = "Create Database NewDB;";
      cmd.ExecuteNonQuery();
      cmd.CommandText = "Use NewDB;CREATE TABLE dbo.Table1 (ID int, Data nvarchar(128));";
      cmd.ExecuteNonQuery();
    
  

【讨论】:

对不起,我试过了,但它不起作用,我已经将 DBServer 更改为 localhost,uid=sa; pwd=admin,但它不起作用 您不能在同一批次中使用USE <dbName> 作为另一个命令。我建议在创建数据库后关闭连接,然后在连接字符串中指定新数据库重新打开它。 @RBarryYoung - 你的 movin sql 页面被冲洗掉了。 @RBarryYoung 我在 SQL Server 2008 R2 上试过,它工作正常,你有什么参考资料表明它不能在同一个连接中使用? @Lai32290 你能写更多关于这怎么行不通的事情吗?它是否连接到数据库?

以上是关于如何使用 C# 创建 SQL Server 2012 数据库?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 C# 在 SQL Server 数据库中创建视图?

如何在 C# MVC 应用程序中在运行时创建 SQL Server Express 数据库?

使用 C# 的 SQL Server UDF

从 C# 检索 SQL Server 扩展属性

如何从 C# 动态运行 SQL Server CE [Windows mobile] 中的 SQL 脚本文件?

使用 c# 创建新的 sql server 表