Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 错误:';请求的数据库未在配置';中定义;?_C#_Sql_Enterprise Library - Fatal编程技术网

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

C# 错误:';请求的数据库未在配置';中定义;?,c#,sql,enterprise-library,C#,Sql,Enterprise Library,我有一个连接数据库的c#应用程序。我正在尝试设置我的项目。我所做的是添加了一个安装项目,然后将我的app.exe、app.config和microsoft库添加到应用程序文件夹中。Build项目安装了它,但它给出了一个错误“请求的数据库未在配置中定义”。这是密码 <connectionStrings> <add name="chk" connectionString="server=my- PC;Database

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

           <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>

请提供帮助,因为这是设置project的新功能

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

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

由于您使用的是LINQtoSQL,它是否提供了一个服务器资源管理器,您可以在其中将项目拖放到DBML文件上?请参见此图:

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

更新2:

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

(local)\SQLEXPRESS
要始终指向数据库服务器,请执行以下操作:

MyDatabaseServer\SQLEXPRESS
更新3:

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


CreateDatabase的string参数必须与其中一个连接字符串的名称匹配,因此您需要将原始连接字符串放回配置中,并从那里开始工作。app.config需要与exe位于同一文件夹中。如果按照Rikalus的建议,将连接字符串添加到启动项目中的app.config,则在开始调试时,它应自动复制到~\bin\Debug文件夹。我的数据库名称为“cust\u man”是否与您所说的相同,但仍然是相同的错误请查看上面第二个连接字符串中的任何错误?数据库名称不重要,CreateDatabase要查找的是“name”属性中的值。我正在使用企业库。这是dll文件的问题吗?仍然得到相同的错误……这就是我如何使用连接字符串public int checkplatenum(string platenum){return Convert.ToInt32(db.ExecuteScalar(“checkplatenum”,new object[]{platenum}”);}那么您使用LINQ to SQL吗?来自db.ExecuteScalar的数据库是数据上下文吗?在实际执行数据库命令之前,应该先使用连接字符串。罗杰,在我的项目中,一切都很好,在数据库中获取和存储数据。但是它只是在尝试创建安装项目时引起问题,所以当您使用安装项目在其他计算机上安装应用程序时,它就不起作用了?在上面的“我的更新2”中更改您的连接字符串是否有帮助?
    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;
    }
(local)\SQLEXPRESS
MyDatabaseServer\SQLEXPRESS