如何用C#编程连接SQL Server

本文关键字:SQL Server 连接 编程 何用 | 更新日期: 2023-09-27 18:21:28

我开发了一个程序(C#),它使用以下代码创建SQL数据库:

string SQLCreation = "IF NOT EXISTS (SELECT * FROM master..sysdatabases WHERE Name = 'x') CREATE DATABASE x";
SqlConnection PublicSQLDBCreationConnection = new SqlConnection(connectionString);
SqlCommand PublicSQLDBCreation = new SqlCommand(SQLCreation, PublicSQLDBCreationConnection);
try
{
   PublicSQLDBCreationConnection.Open();
   PublicSQLDBCreation.ExecuteNonQuery();
   PublicSQLDBCreationConnection.Close();
}
//'then creates a table and so on

现在我想要一个客户端应用程序,它可以连接到这个数据库(通过局域网),而不使用IP或计算机名。这怎么可能?有没有可能做到这一点,并有一个数据集,而不提及IP地址或计算机名称?


附言:别担心,伙计们,我简化了我的代码只是为了你的观点,我已经确保SQL注入或其他尝试不会发生。此外,我不得不说,我没有提到服务器名或IP的原因是,我想在许多网络上大规模部署我的应用程序

如何用C#编程连接SQL Server

您可以使用SqlDataSourceEnumerator来获取所有可见和可浏览的Sql服务器的列表。这不是一个好的技术,因为你可能会得到一个你无权在上面创建数据库的实例,但你仍然可以尝试使用它。

var enumerator = SqlDataSourceEnumerator.Instance;
foreach (DataRow row in enumerator.GetDataSources().Rows)
{
    var serverName = row["ServerName"];
    var instance = row["InstanceName"];
    // build a connection string and try to connect to it
}