gpt4 book ai didi

c# - 通过 |DataDirectory| 在另一台计算机中的 SQL 数据库连接失败

转载 作者:太空宇宙 更新时间:2023-11-03 12:45:25 24 4
gpt4 key购买 nike

我有一个数据库和一个服务器应用程序,在我的计算机上运行时一切正常。

string ConnectionString = @"Data Source=(LocalDB)\v11.0;AttachDbFilename='|DataDirectory|\Fabrica.mdf';Integrated Security=True;Connect Timeout=30";

问题是:我必须在另一台计算机上运行这个应用程序,并且数据库也必须在那里,当服务器应用程序试图访问数据库时,它什么都不返回。是不是认证有问题?文件路径?

@Edit:这是我访问表格的方式:

SqlConnection con = new SqlConnection(ConnectionString);
SqlCommand cmd = new SqlCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText = String.Format("SELECT * FROM {0}", Table);
string name;
SqlDataReader reader;
try
{
con.Open();
reader = cmd.ExecuteReader();
while (reader.Read())
{
name = reader["Name"].ToString();
}
con.Close();
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}

@Edit:我不知道这是否有帮助,但我在另一台计算机上安装了 SQL Server LocalDB 和 SQL Server Express。

最佳答案

授权和文件路径都很重要。

LocalDB 安装在计算机 A 和 LocalDB 中,SQL Sever Express 安装在计算机 B(服务器)中?

LocalDB 就是名称“Local”的含义。这意味着如果您想移动到另一台计算机,则必须将 LocalDB 重新本地化到计算机 B。

手动方式比较复杂,需要先将LocalDB从计算机A的LocalDB服务器上分离出来(ALTER DATABASE IMMEDIATE ROLLBACK必须提前完成),然后将LocalDB文件复制到计算机B,并将LocalDB文件附加到计算机 B 中的 LocalDB 服务器。并且 attachDBfilepath 应指示正确的路径。 |数据目录|是服务器应用程序的数据目录,它不是服务器应用程序的执行目录。重要的是,由于 LocalDB 的所有权,需要分离和附加过程。

与上述复杂的手动方式相比,我建议使用自动方式将 LocalDB .mdf 文件添加到服务器应用程序的项目中,并确保属性为“内容”和“如果更新则复制”或“始终复制”。使用自动提供的连接字符串,但只需将部分更改为 |DataDirectory|。如果此时部署 Server 应用程序,LocalDB 也会被部署到 Server 应用程序的数据目录中,LocalDB 的所有权将自动更改为计算机 B。

我不确定您是如何使应用程序在具有 |DataDirectory| 的计算机 A 中正常运行的并希望建议了解 LocalDB 的性质和 |DataDirectory| 的含义和连接字符串。

根据我的艰难经历,这是我个人的看法,如果您使用|DataDirectory|,您只能读取(选择)而不能插入(修改)数据。这意味着我们需要在将 LocalDB 添加到项目以用作 |DataDirectory| 之前设置(插入)所有数据。

作为引用,我的案例是我已经将大数据设置(插入)到 LocalDB 中,并在部署之前将其添加到项目中,我对我的应用程序进行编码以在部署后创建一个新的另一个 LocalDB 以实现插入(修改)功能。

另请引用我给别人的回答。
Not inserting data into database and not getting any error

关于c# - 通过 |DataDirectory| 在另一台计算机中的 SQL 数据库连接失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37501157/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com