Я создал приложение WPF с использованием C #, и для своей базы данных я использую .mdf
файлы.Когда я развертываю приложение на своем компьютере, оно работает отлично.Но когда я пытаюсь использовать его на другом компьютере, иногда он говорит, что не может открыть базу данных.
После большой кропотливой работы, чтобы выяснить это, я попал в другую ошибку, когда увидел свою базу данных на этом ПК.Он говорит, что ссылка на объект не установлена для экземпляра объекта.
В чем может быть проблема?
После того, как я закончил, развернул и протестировал его на моем ПК, прекрасно работает.
Я пробовал на другом ПК, установка только sqllocaldb
, не работал.
Я пытался установить SQL Server Management Studio, и после долгих тренировок мне удалось создать .mdf
файл базы данных там с моими таблицами и данными.Но я получил сообщение об ошибке, в котором говорится, что ссылка на объект не установлена для экземпляра объекта.
Моя строка подключения:
String connString = "Data Source=(localdb)\\MSSQLLocalDB;Integrated Security=True;database='Autoecole.mdf';Initial Catalog=Autoecole.mdf;Connect Timeout=30;";
И мой файл базы данных Autoecole.mdf
, действие сборки - это содержимое, «копировать в выходной каталог» установлен на «копировать, если новее».
Я ожидаю увидеть некоторые данные серийных ключей и т. д ... но я ничего не получил.
РЕДАКТИРОВАТЬ
Здравствуйте, я попытался выполнить резервное копирование базы данных и восстановить ее на удаленном ПК, затем я попытался выполнить то, что вы мне сказали, в первую очередь, кажется, работает отлично, приложение запустилось с подключением к базе данных, но когда япопробуйте другие функции, используя sql, в приложении написано, что «ссылка на объект не установлена для экземпляра объекта».что делать
мой app.config:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
</configSections>
<connectionStrings>
<add name="Autoecole.mdf"
connectionString="Data Source=(localdb)\MSSQLLocalDB; Integrated Security=True; database='Autoecole.mdf'; Initial Catalog=Autoecole.mdf; Connect Timeout=30"
providerName="System.Data.SqlClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
</startup>
</configuration>
и мой connString:
String connString = System.Configuration.ConfigurationManager.ConnectionStrings["Autoecole.mdf"].ConnectionString.ToString();
ИЗМЕНИТЬ СНОВА
пример кода, который использует sql
private void activation_Click(object sender, RoutedEventArgs e)
{
try
{
textBox.Text = CalculateMD5Hash(GetMacAddress().ToString());
String mac = textBox.Text.ToString();
String serial = CalculateMD5Hash(textBox1.Text.ToString());
String connString = System.Configuration.ConfigurationManager.ConnectionStrings["Autoecole.mdf"].ConnectionString.ToString();
String query = "update activation set activated='" + 1 + "' where serial='" + serial + "'";
String query1 = "insert into localadress values('" + mac + "')";
SqlConnection conn = new SqlConnection(connString);
SqlCommand command = new SqlCommand(query, conn);
conn.Open();
int x = command.ExecuteNonQuery();
if (x >0)
{
MessageBox.Show("Application activé");
conn = new SqlConnection(connString);
command = new SqlCommand(query1, conn);
conn.Open();
command.ExecuteNonQuery();
MessageBox.Show("Redemmarer l'application");
}
else
{
MessageBox.Show("Numero de serie faux, l'application va se fermer");
}
System.Windows.Application.Current.Shutdown();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
finally
{
SqlConnection conn = new SqlConnection();
conn.Close();
}
}