错误:'请求的数据库未在配置中定义'?

时间:2014-12-11 15:06:07

标签: c# sql enterprise-library

我有与数据库连接的c#app。我正在尝试设置我的项目。我所做的是我添加了一个安装项目,然后将我的app.exe,app.config,microsoft库添加到应用程序文件夹中。构建项目安装它但它给出了一个错误"请求的数据库没有在配置"中定义。这是代码

           <connectionStrings>
           <add name="chk" connectionString="server=my-
           PC;Database=cust_man;Trusted_Connection=Yes;" providerName="System.Data.SqlClient"/>
           <add name="cust_man.Properties.Settings.chk" connectionString="Initial 
           Catalog=cust_man;Data Source=my-PC;Integrated Security=SSPI;"/>
           <add name="Customer_Management.Properties.Settings.datasource" connectionString="Data
           Source=my-PC;Initial Catalog=cust_man;Integrated Security=True" 
           providerName="System.Data.SqlClient"/>
           </connectionStrings>

它是我在设置项目之前使用的连接字符串,它正在工作然后我搜索错误并尝试用此替换我的连接字符串

           <connectionStrings>

           <add name="cust_man" connectionString="Database=cust_man;Server= 
           (local)\SQLEXPRESS;AttachDbFilename=C:\database\cust_man.mdf;Integrated 
           Security=True;User Instance=True"

           providerName="System.Data.SqlClient" />

           </connectionStrings>

但它仍然给出了同样的错误,还有一件事我使用了企业库,所以我用它来实现功能

       Database db = DatabaseFactory.CreateDatabase("chk");

请帮助,因为这是制作项目

的新功能

1 个答案:

答案 0 :(得分:0)

请在app.config中尝试此连接字符串:

<connectionStrings>
  <add name="DSN" connectionString="Server=.\sqlexpress;Database=cust_man;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>

然后,这就是你实际使用连接字符串的方式:

    public static DbProviderFactory Factory
    {
        get
        {
            if (dbProviderFactoryEmployee == null)
            {
                ConnectionStringSettings connectionSettings = ConfigurationManager.ConnectionStrings["DSN"];
                dbProviderFactoryEmployee = DbProviderFactories.GetFactory(connectionSettings.ProviderName);
                ConnectionString = connectionSettings.ConnectionString;
            }
            return dbProviderFactoryEmployee;
        }
    }

    private static SqlConnection GetDbConnection()
    {
        SqlConnection dbConnection = new SqlConnection(ConnectionString);

        dbConnection.Open();
        return dbConnection;
    }

<强>更新

由于您使用的是LINQ to SQL,它是否为您提供了一个服务器资源管理器,您可以将项目拖放到DBML文件中?看到这张图片:

enter image description here

然后,设计人员应自动将您的连接字符串放入项目的app.config文件中。您只需将该连接字符串复制到UI项目的app.config。

更新2:

如果在将应用程序部署到其他计算机时遇到安装程序问题,则需要从localhost更改连接字符串:

(local)\SQLEXPRESS

始终指向数据库服务器:

MyDatabaseServer\SQLEXPRESS

更新3:

您的SQL Server防火墙端口号是否在数据库服务器上打开?您还可以查看这些文章,以帮助您了解是否遗漏了重要内容:

http://www.codeproject.com/Articles/215712/LINQ-to-SQL-Basic-Concepts-and-Features http://www.codeproject.com/Articles/136028/Learn-SQL-to-LINQ-Visual-Representation