作为exe运行时无法读取本地SQL Server文件。适用于IDE

时间:2014-08-04 17:21:08

标签: c# sql-server

这是我第一次尝试使用SQL Server文件类型数据库。当我在IDE中运行但是当我双击exe或鼠标右键单击" Run Elevated,"尝试连接时出错。

在两种模式下运行时,消息框显示相同的连接字符串。

可能是什么问题?某种权限问题?

MessageBox.Show(ApplicationParameter.LocalDatabaseConnectionString);
databaseConnection = new SqlConnection(ApplicationParameter.LocalDatabaseConnectionString);
databaseConnection.Open();

我得到以下SqlException:

  

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供程序:SQL网络接口,错误:50 - 发生本地数据库运行时错误。在LocalDB实例启动期间发生错误:SQL Server进程无法启动。

以下是app.config文件中的连接字符串:

<connectionStrings>
        <add name="LocalDatabase" connectionString="Data Source=(localdb)\v11.0;Initial Catalog=C:\MYCODE\MyCompany.DISKMONITOR\MyCompany.DISKMONITOR\DATA\DATABASE.MDF;Integrated Security=True;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False"/>
    </connectionStrings>

我的班级用于阅读app config:

class ApplicationParameter
    {

        public static string LocalDatabaseConnectionString
        {
            get
            {
                return ConfigurationManager.ConnectionStrings["LocalDatabase"].ConnectionString;
            }
        }

    }

更新:

我以管理员身份运行并获得了相同的结果。

1 个答案:

答案 0 :(得分:0)

Connections.Classified包含特定于db位置的信息,要使用的实例和用户名/密码信息。不会发布...

这是我在所有应用程序中使用的SQLConnections.cs类(我的是oracle,我刚刚更新它以使用SQL):

private String connectionString = "Server=" + SERVER + "\\" + INSTANCE + ";Database=" + DATABASE + ";User Id="+ USER + ";Password=" + PASSWORD + ";"

protected SQLConnection getConnection()
{
    return new SQLConnection(connectionString);
}

在扩展Connections.SQLConnections的repo类中使用:

SQLConnection connection = getConnection();

对于其他人来说,阅读代码,理解不那么混乱和容易。