如何创建嵌入式数据库?

时间:2018-04-18 20:00:44

标签: c# sql-server

所以,我开始在我的主电脑上制作应用程序。数据库工作得很好。

但是当我在第二个Pc或任何其他个人电脑上移动应用程序继续工作时,它会骚扰并抛出此异常:

System.Data.SqlClient.SqlException: 'An attempt to attach an auto-named database for file C:\Users\Cristi\OneDrive\Documente\Licurici\Licurici\qst.mdf failed. A database with the same name exists, or specified file cannot be opened, or it is located on UNC share.'

这是初始连接字符串:

SqlConnection sqc = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Cristi\OneDrive\Documente\Licurici\Licurici\qst.mdf;Integrated Security=True");

我更改了连接字符串:

 SqlConnection sqc = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|qst.mdf;Integrated Security=True");

我也试过这个:

 SqlConnection sqc = new SqlConnection(Properties.Settings.Default.qstConnectionString);

最后2个字符串工作正常,并使数据库可移植,但使INSERT命令不再起作用。这是我的sql命令:

sqc.Open();
SqlCommand cmd = new SqlCommand("INSERT INTO Question(quest, a, b, c, d) VALUES(@q, @a, @b, @c, @d)",sqc);
cmd.Parameters.AddWithValue("@q", richTextBox1.Text.ToString());
cmd.Parameters.AddWithValue("@a", richTextBox2.Text.ToString());
cmd.Parameters.AddWithValue("@b", richTextBox3.Text.ToString());
cmd.Parameters.AddWithValue("@c", richTextBox4.Text.ToString());
cmd.Parameters.AddWithValue("@d", richTextBox5.Text.ToString());
cmd.ExecuteNonQuery();
sqc.Close();

所以我问你,我如何创建一个可以在任何电脑上工作的便携式(或嵌入式)数据库,而不必每次都手动更改连接字符串,也可以使用像insert这样的sqlcommands正常工作?

我正在使用.NET框架在Visual Studio 2017中工作。该项目是一个Windows窗体应用程序。

任何帮助表示赞赏! :)

0 个答案:

没有答案