我正在尝试操作SQL连接字符串,因此它不是运行我们数据库的原始副本,而是从我们的C#项目中的副本文件夹运行。
答案 0 :(得分:2)
DbConnectionStringBuilder类是一种操作连接字符串的各种键/值对的好方法。您应该使用相关的提供者特定的connectionstringbuilder类。
答案 1 :(得分:1)
试试看: http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnectionstringbuilder.aspx
如果您使用SQL Server,它比尝试操作字符串要好得多......
答案 2 :(得分:0)
最简单的方法可能是,不是按原样存储连接字符串,而是为要用不同值替换的位放置占位符。如果您使用{0}
,{1}
等,则可以在运行时使用string.Format
插入正确的值。
答案 3 :(得分:0)
我不是100%确定问题的背景是什么,但以下内容可能适合您。 一种方法是让App.Config完成工作:
<configuration>
<configSections>
<section name="loggingConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Logging.Configuration.LoggingSettings, Microsoft.Practices.EnterpriseLibrary.Logging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" />
<section name="dataConfiguration" type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, Microsoft.Practices.EnterpriseLibrary.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null" />
</configSections>
<dataConfiguration defaultDatabase="DEV" />
<connectionStrings>
<add name="DEV" connectionString="Database=xxx;Server=xxx;Trusted_Connection=True" providerName="System.Data.SqlClient" />
<add name="LIVE" connectionString="Database=xxx;Server=xxx;Trusted_Connection=True" providerName="System.Data.SqlClient" />
</connectionStrings>...
然后,您可以使用以下代码获取默认连接字符串(您可能希望将其放在单独的类中,以便在整个代码中使用它。)
public static string DefaultDatabase
{
get
{
SystemConfigurationSource scs = new SystemConfigurationSource();
return DatabaseSettings.GetDatabaseSettings(scs).DefaultDatabase;
}
}
public static string DefaultConnectionString
{
get
{
return ConfigurationManager.ConnectionStrings[Sql.DefaultDatabase].ConnectionString;
}
}
答案 4 :(得分:0)
如果您正在使用xsds / adapters,则需要在应用程序启动时手动设置适配器的connectionString。如果你的适配器在一个单独的库中,你需要使用签名重载适配器的构造函数,你可以传递一个connectionString(如果是这种情况,请阅读下面的内容)。用于创建xsd的第一次connectionString被缓存。
如果是这种情况,请执行以下操作:
假设你有User.xsd。右键单击然后查看代码。如果展开(+)xsd。
,您会注意到会创建User.cs您可能已生成此代码:
namespace Adapters {
public partial class User
{
}
}
您应该添加以下内容:
namespace Adapters.UserTableAdapters
{
public partial class UsersTableAdapter : global::System.ComponentModel.Component
{
public UsersTableAdapter(string connectionString)
{
this._clearBeforeFill = true;
this._connection = new System.Data.SqlClient.SqlConnection();
this._connection.ConnectionString = connectionString;
}
}
}
现在,当您初始化UsersTableAdapter时,将connectionString传递给它。
因为我在整个网站上都使用了connectionString,并且为了继续阅读web.config很烦人,我创建了这个简单的类:
namespace Data
{
public class DataModule
{
private static string _connectionString = String.Empty;
public static string ConnectionString
{
get
{
if (_connectionString == String.Empty)
throw new Exception("DataModule not initialized");
return _connectionString;
}
}
public static void initialize(string connectionString)
{
_connectionString = connectionString;
}
}
}
在ApplicationStart上,我打电话给
DataModule.Initialize(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
请注意,此类仅支持1个connectionString。您可以轻松修改它以支持许多。
如果您更好地描述您的环境,我们可以为您提供更多帮助=)