Как подключиться к SQL Server программно в C #? - PullRequest
0 голосов
/ 27 января 2012

Я разработал программу (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 Adr.или имя компьютера?


PS Не беспокойтесь, ребята, я упростил свой код только для вашего просмотра, я убедился, что SQL-инъекция или другие попытки не произойдут.Также я должен сказать, что моя причина не упоминать имя сервера или IP-адрес заключается в том, что я хочу массово развернуть свое приложение во многих сетях

1 Ответ

1 голос
/ 27 января 2012

Вы можете использовать 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
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...