【发布时间】:2016-05-28 16:04:50
【问题描述】:
我有一个数据库和一个服务器应用程序,在我的计算机上运行时一切正常。
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。
【问题讨论】:
-
检查异常,确保您在正确的文件夹中有 Fabrica.mdf 并安装了 SQL Server localDb
-
首先打开 SQL Server 附带的 SQL Server Management Studio (SMSS)。登录窗口有一个服务器实例。确保您的应用程序使用相同的实例名称。然后使用 SMSS 浏览器打开数据库选项卡并检查服务器上数据库的名称。不要在连接字符串中使用 mdf 文件名。它不是必需的,可能会导致凭据问题。
-
@AdilAhamed 我试过了,没有例外。
-
@jdweng 一切正常,但仍然无法正常工作
-
我很确定连接字符串是错误的。请再次阅读 jdweng 的评论。如果您能够打开 SMSS 并看到您的 sql server 实例的名称,并且您能够连接到它,则问题出在连接字符串中。有时防火墙或防病毒软件会阻止连接。
标签: c# sql connection localdb