我是通过微软的样本写的,但它不起作用:
public class Database
{
private bool Create()
{
string path = GetPath();
Debug.WriteLine("Path: " + path);
try
{
string connectionString = string.Format(@"Data Source=(LocalDB)\v11.0;Initial Catalog=master;Integrated Security=True");
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand cmd = connection.CreateCommand();
DetachDatabase(DatabaseName);
cmd.CommandText = string.Format("CREATE DATABASE {0} ON (NAME = N'{0}', FILENAME = '{1}')", DatabaseName, path);
cmd.ExecuteNonQuery();
}
if (File.Exists(path)) return true;
else return false;
}
catch
{
throw;
}
}
public static bool DetachDatabase(string dbName)
{
try
{
string connectionString = string.Format(@"Data Source=(LocalDB)\v11.0;Initial Catalog=master;Integrated Security=True");
using (var connection = new SqlConnection(connectionString))
{
connection.Open();
SqlCommand cmd = connection.CreateCommand();
cmd.CommandText = string.Format("exec sp_detach_db '{0}'", dbName);
cmd.ExecuteNonQuery();
return true;
}
}
catch
{
return false;
}
}
private string GetPath()
{
string filename = System.Reflection.Assembly.GetExecutingAssembly().CodeBase;
return new Uri(Path.GetDirectoryName(filename)).LocalPath + "\\" + DatabaseName + DatabaseType;
}
}
调用connection.Open()
时出错:
更多信息:“System.Data.SqlClient.SqlException” System.Data.dllВызваноисключение: “System.Data.SqlClient.SqlException”вSK.exe“SK.vshost.exe”(CLR v4.0.30319:SK.vshost.exe)。 Загружено “C:\ WINDOWS \ Microsoft.Net \装配\ GAC_MSIL \ System.Transactions.resources \ v4.0_4.0.0.0_ru_b77a5c561934e089 \ System.Transactions.resources.dll”。 Сборкамодулявыполненабезсимволов。 System.Transactions严重:0 :http://msdn.microsoft.com/TraceCodes/System/ActivityTracing/2004/07/Reliability/Exception/UnhandledНеобработанное исключениеSK.vshost.exeSystem.Data.SqlClient.SqlException, System.Data,Version = 4.0.0.0,Culture = neutral, 公钥=b77a5c561934e089При установлениисоединениясSQLServerпроизошлаошибка,связаннаяс сетьюилисопределеннымэкземпляром。 Серверненайденилинедоступен。 Убедитесь,чтоимяэкземплярауказаноправильноичтонаSQLServer 这是一个很好的选择。 (提供者:SQL网络接口, 错误:50 - 本地数据库Runtime.Невозможносоздать автоматическийэкземпляр。 Дополнительныесведенияобошибкесм。 в журналесобытийприложенийWindows。 ) System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity,SqlConnectionString connectionOptions,SqlCredential 凭证,Object providerInfo,String newPassword,SecureString newSecurePassword,Boolean redirectedUserInstance,SqlConnectionString userConnectionOptions,SessionData reconnectSessionData, DbConnectionPool池,String accessToken,Boolean applyTransientFaultHandling)в System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options,DbConnectionPoolKey poolKey,Object poolGroupProviderInfo, DbConnectionPool池,DbConnection owningConnection, DbConnectionOptions userOptions)...
用俄语说the server not found or not available
。
P.S。我重试了一些我找到的变种,但它并不都是一样的。
答案 0 :(得分:1)
Серверненайденилинедоступен。 Убедитесь,чтоимяэкземплярауказано правильноичтонаSQLServerразрешеныудаленныесоединения。
这意味着您无法连接到您的SQL Server。你的连接字符串是错误的。