【问题标题】:C# mdf local databaseC# mdf 本地数据库
【发布时间】:2017-04-08 03:57:52
【问题描述】:

我用谷歌搜索了半天如何设置我的数据库的路径,所以如果我把它放在另一台计算机上它就可以了。我会一直在谷歌上搜索,但我真的需要非常快的答案......我必须在几个小时内用它来参加比赛。

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 必须具有您正在运行并用作连接字符串的 SQL Server 版本。您确定目标 PC 正在运行 LocalDB?

标签: c# sql-server database


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-02
      • 2017-10-06
      相关资源
      最近更新 更多