C#mdf本地数据库

时间:2017-04-08 03:57:53

标签: c# sql-server database

我用谷歌搜索了半天如何设置我的数据库的路径,所以如果我把它放在另一台计算机上它将工作。我会继续谷歌搜索,但我真的非常需要答案......我将不得不在几个小时内将它用于比赛。

string path = Path.Combine(Application.StartupPath, "Database1.mdf");

SqlConnection conn = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=" + path + ";");
conn.Open();

SqlCommand command = new SqlCommand("SELECT NAME FROM DATA", conn);

SqlDataReader reader = command.ExecuteReader();

while(reader.Read())
{
    string text = reader.GetString(0);
    MessageBox.Show(text);
}

SqlCommand c = new SqlCommand("INSERT INTO DATA (id, name) VALUES(i, v)", conn);
c.Parameters.AddWithValue("@i", 1);
c.Parameters.AddWithValue("@v", "Jack");

c.ExecuteNonQuery();

conn.Dispose();

此代码适用于选择,但不适用于插入。然后我将路径硬编码为:

 String s = @"C:\Users\Radu\Documents\Visual Studio 2013\Projects\WindowsFormsApplication7\WindowsFormsApplication7\Database1.mdf";

它适用于两者,因此它不是错误的SQL语句。

所以我的问题是:我应该在我的SqlConnection对象中添加什么路径,这样当他们在我的竞争对手上获取我的源代码并在另一台PC上测试它时,它将起作用。

2 个答案:

答案 0 :(得分:0)

LocalDB专门用于开发。你不能在生产中使用它。在您的情况下,'生产'意味着比赛。除非竞赛组织者指定他们支持您连接的SQL Server实例,并提供连接参数(即非常不可能),否则您不应该在项目中使用SQL Server。

答案 1 :(得分:0)

您可以将MDF文件放在计算机可以访问的任何文件共享上。只需更改路径变量即可指向正确的文件共享。

在此处查看问题的答案Can SQL Server Express LocalDB be connected to remotely?