У меня есть форма входа в моем проекте, и я напишу ниже кода, чтобы прикрепить свою базу данных (есть в D: \), когда эти Логиниться нагрузки:Присоединить базу данных программно
try
{
SqlConnection con = new SqlConnection(@"Data Source=.;Initial Catalog=master;Integrated Security=True");
con.Open();
SqlDataAdapter da = new SqlDataAdapter("select name from sys.databases", con);
DataTable dt = new DataTable();
da.Fill(dt);
string[] array = dt
.AsEnumerable()
.Select(row => row.Field<string>("Name"))
.ToArray();
if (!array.Contains("cstmrDB", StringComparer.OrdinalIgnoreCase))
{
SqlCommand cmd = new SqlCommand("sp_attach_db");
cmd.Connection = con;
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@dbname", "Apdb");
cmd.Parameters.AddWithValue("@filename1", @"d:\Apdb.mdf");
cmd.ExecuteNonQuery();
}
}
catch (exception ex)
{
messagebox.show(ex.message);
}
Это прекрасно работает в моем ноутбуке , Я публикую свой проект (используя C# publish) и устанавливаю SQL Server и свой проект и копирую свою базу данных в d: \ на другом ПК. но когда я запускаю свой проект, база данных не будет прикрепляться! Я не знаю, почему эта проблема возникает ... но я думаю, может быть, причина в том, что я не пишу никакого кода для определения файла * .ldf (но я помещаю как файлы mdf, так и ldf в d: \)
ERROR: A network-related or instance-specific error occurred while establishing a connection to SQL Server.
The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections.
(provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)
У вас есть ошибка в catch? –
Ну, да, основные навыки отладки действительно трудно получить. Начните с обнаружения исключения и просмотра журнала SQL Server, чтобы узнать, что произойдет. Я совершенно уверен, что призыв не волшебным образом ничего не делает. – TomTom
@DynamicVariable вопрос обновлен – Ali