C# 附加SQL数据库行为
我正在尝试创建一个setup.exe,用于安装我编写的应用程序 应用程序使用数据库来存储和检索信息 在安装程序中,我让安装用户提供数据库服务器\实例、凭据和要将数据库文件复制到的数据目录 我希望以编程方式永久附加数据库 我使用以下命令以编程方式将数据库附加到我的实例。 con.Open()和con.Close()仅用于测试C# 附加SQL数据库行为,c#,database,C#,Database,我正在尝试创建一个setup.exe,用于安装我编写的应用程序 应用程序使用数据库来存储和检索信息 在安装程序中,我让安装用户提供数据库服务器\实例、凭据和要将数据库文件复制到的数据目录 我希望以编程方式永久附加数据库 我使用以下命令以编程方式将数据库附加到我的实例。 con.Open()和con.Close()仅用于测试 System.Data.SqlClient.SqlConnection con; con = new System.Data.SqlClient.SqlConnection(
System.Data.SqlClient.SqlConnection con;
con = new System.Data.SqlClient.SqlConnection();
con.ConnectionString = @"Data Source=.\SQLEXPRESS;Integrated Security=true;Connect Timeout=30;User Instance=True";
ServerConnection serverconn = new ServerConnection(con);
Server s = new Server(serverconn);
s.DetachDatabase("DBX2", true, true);
s.AttachDatabase("DBX2", new System.Collections.Specialized.StringCollection { @"C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\DATA\DBX2.mdf", @"C:\Program Files\Microsoft SQL Server\MSSQL14.SQLEXPRESS\MSSQL\DATA\DBX2_log.ldf" }, AttachOptions.None);
con.Open();
MessageBox.Show("Connection Opened");
con.Close();
MessageBox.Show("Connection Closed");
需要确认的几个问题:
每个应用程序都有自己独立的“连接字符串”,它提供了连接到同一数据库的方法。SSM和其他客户端可执行文件只是这些应用程序的一部分。当然,每个连接字符串实际上可能是相同的东西,因为它们都指向同一个数据库,只是存储方式不同而已 每个应用程序都有自己独立的“连接字符串”,它提供了连接到同一数据库的方法。SSM和其他客户端可执行文件只是这些应用程序的一部分。当然,每个连接字符串实际上可能是相同的东西,因为它们都指向同一个数据库,只是存储方式不同而已 连接到应用程序中的数据库不会在另一个应用程序(SSMS)中创建连接。另外,如果用户没有SSM怎么办?他们是否可以在不安装多兆字节SQL IDE的情况下运行您的应用程序?@Neil,我的应用程序只是初始化需要访问数据库的客户端可执行文件,即使在我的应用程序关闭后也是如此。当然可以,但是这些客户端可执行文件是否也需要/require/SSMS,或者它们是否“使用数据库”?请记住,运行c#应用程序不需要SSM,它只需要一个指向SQL Server(可能是SQL Express或其他无数SQL Server之一)的连接字符串。@Neil,客户端只需要访问数据库。他们不需要SSM。我只是担心我没有在SSMS中看到它,因为我认为需要在那里看到它,以便我的Sequel服务器允许客户端查看和访问它。因为我认为SMS显示所有连接的数据库。每个应用程序都有自己独立的“连接字符串”,它提供了连接到同一数据库的方法。SSM和其他客户端可执行文件只是这些应用程序的一部分。当然,每个连接字符串实际上可能是相同的,因为它们都指向同一个数据库,只是存储方式不同而已。连接到应用程序中的数据库不会在另一个应用程序(SSMS)中创建连接。另外,如果用户没有SSM怎么办?他们是否可以在不安装多兆字节SQL IDE的情况下运行您的应用程序?@Neil,我的应用程序只是初始化需要访问数据库的客户端可执行文件,即使在我的应用程序关闭后也是如此。当然可以,但是这些客户端可执行文件是否也需要/require/SSMS,或者它们是否“使用数据库”?请记住,运行c#应用程序不需要SSM,它只需要一个指向SQL Server(可能是SQL Express或其他无数SQL Server之一)的连接字符串。@Neil,客户端只需要访问数据库。他们不需要SSM。我只是担心我没有在SSMS中看到它,因为我认为需要在那里看到它,以便我的Sequel服务器允许客户端查看和访问它。因为我认为SMS显示所有连接的数据库。每个应用程序都有自己独立的“连接字符串”,它提供了连接到同一数据库的方法。SSM和其他客户端可执行文件只是这些应用程序的一部分。当然,每个连接字符串实际上可能是相同的东西,因为它们都指向同一个数据库,只是存储方式不同而已。