简体   繁体   English

从连接字符串创建数据库的最简单方法?

[英]Simplest way to create database from connection string?

We're looking for a hands-on way to create a database from a given connection string with minimum code possible (eg, to include in LINQPad scripts or C# scriptlets).我们正在寻找一种实用的方法,用尽可能少的代码(例如,包含在 LINQPad 脚本或 C# 脚本中)从给定的连接字符串创建数据库。

Is there a one-liner or something similar to create a database from a connection string?是否有单行或类似的东西来从连接字符串创建数据库? Most preferably something like "Static.CreateDatabase("connection string") .最好是像"Static.CreateDatabase("connection string")

I have created a static class Scripts which contains a static method CreateDatabase我创建了一个静态类脚本,其中包含一个静态方法 CreateDatabase

// USE Class Like this
Scripts.CreateDatabase("Connectionstring")

//Class
static class Scripts
    {

        static bool CreateDatabase(string Connectionstr)
        {
            bool result =false;

              SqlConnection Conn = new SqlConnection(Connectionstr); // pass connection string and user must have the permission to create a database,

              string Query = "CREATE DATABASE Exampledatabase ";
                SqlCommand Command = new SqlCommand(Query, Conn);
                try
                {
                    Conn .Open();
                    Command.ExecuteNonQuery();
                    result =true;
                }
                catch (System.Exception ex)
                {
                    result =false;
                }
                finally
                {
                    if (Conn.State == ConnectionState.Open)
                    {
                        Conn.Close();
                    }
                }
            return result;
        }

    }
SqlConnection myConn = new SqlConnection ("Server=localhost;Integrated security=SSPI;database=master");
String sql = "CREATE DATABASE MyDatabase";
SqlCommand myCommand = new SqlCommand(sql, myConn);
try {
    myConn.Open();
    myCommand.ExecuteNonQuery();
    // OK
} catch (System.Exception ex) {
    // failed
} finally {
    if (myConn.State == ConnectionState.Open) {
        myConn.Close();
    }
}

Download nuget add as a reference to LINQPad.下载nuget add 作为对 LINQPad 的参考

Then use comand:然后使用命令:

void Main()
{
    var database = new ProductivityTools.CreateSQLServerDatabase.Database("XXX", "Server=.\\SQL2019;Trusted_Connection=True;"); 
    database.Create();
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM