我用谷歌搜索了半天如何设置我的数据库的路径,所以如果我把它放在另一台计算机上它将工作。我会继续谷歌搜索,但我真的非常需要答案......我将不得不在几个小时内将它用于比赛。
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上测试它时,它将起作用。
答案 0 :(得分:0)
LocalDB专门用于开发。你不能在生产中使用它。在您的情况下,'生产'意味着比赛。除非竞赛组织者指定他们支持您连接的SQL Server实例,并提供连接参数(即非常不可能),否则您不应该在项目中使用SQL Server。
答案 1 :(得分:0)
您可以将MDF文件放在计算机可以访问的任何文件共享上。只需更改路径变量即可指向正确的文件共享。
在此处查看问题的答案Can SQL Server Express LocalDB be connected to remotely?