App.Config 连接字符串格式
App.Config connection string format
在我的 App.Config 中有以下部分:
<appSettings>
<add key="dbConn" value="Server=myServer;Database=Database;Trusted_Connection=True;Connection Timeout=600" />
</appSettings>
我通过执行以下操作来抓住这一行:
static DbRepository repo = new DbRepository(new DbRepositoryConfig
{
ConnectionString = ConfigurationManager.AppSettings["dbConn"]
});
我将数据传递到我需要的地方,方法是像这样传递到我的 classes 构造函数中:
FileUpload files = new FileUpload(repo, outPutFolder);
最后,我将其设置在目标 class 中的所需位置,如下所示:
private static DbRepository databaseConnectionString;
// how I'm using it
var connectionString = databaseConnectionString;
using (var conn = new SqlConnection(connectionString.ToString()))
{
conn.Open();
using (var command = conn.CreateCommand())
{
command.CommandType = CommandType.Text;
command.CommandText = sqlstring;
loadContextId = (int)command.ExecuteScalar();
}
}
为保持简洁,我省略了 FileUpload 上的实际构造函数 class。我已经调试了我的项目并且一切都得到了纠正,但是当它到达 using
语句时我的项目失败了。
我得到的错误是:
Format of the initialization string does not conform to specification
starting at index 0.
对此的快速搜索告诉我我的连接格式有问题,所以我通过将连接线直接粘贴到方法中来测试它,我的项目 运行 很好。所以我不知道为什么会发生这种情况,因为我的 SQL 连接看起来是正确的。
任何人都可以阐明这一点吗?
因为您正在将 DbRepository 对象本身 (databaseConnectionString) 读入您的 connectionString 变量,而不是 ConnectionString 属性。因此,除非您将 DbRepository.ToString() 覆盖为 return 连接字符串,否则您不会取回连接字符串,而只会取回对象类型。
像这样创建您的 BaseRepository。
public class BaseRepository
{
public static string ConnectionString { get; set; }
static BaseRepository ()
{
ConnectionString = ConfigurationManager.AppSettings["dbConn"];
}
}
你的存储库 class 应该是这样的。
public class YourRepostiory : BaseRepository
{
public void YourMethod()
{
var connectionString = base.ConnectionString;
using (var conn = new SqlConnection(connectionString))
{
conn.Open();
using (var command = conn.CreateCommand())
{
command.CommandType = CommandType.Text;
command.CommandText = sqlstring;
loadContextId = (int)command.ExecuteScalar();
}
}
}
}
希望对您有所帮助!!
在我的 App.Config 中有以下部分:
<appSettings>
<add key="dbConn" value="Server=myServer;Database=Database;Trusted_Connection=True;Connection Timeout=600" />
</appSettings>
我通过执行以下操作来抓住这一行:
static DbRepository repo = new DbRepository(new DbRepositoryConfig
{
ConnectionString = ConfigurationManager.AppSettings["dbConn"]
});
我将数据传递到我需要的地方,方法是像这样传递到我的 classes 构造函数中:
FileUpload files = new FileUpload(repo, outPutFolder);
最后,我将其设置在目标 class 中的所需位置,如下所示:
private static DbRepository databaseConnectionString;
// how I'm using it
var connectionString = databaseConnectionString;
using (var conn = new SqlConnection(connectionString.ToString()))
{
conn.Open();
using (var command = conn.CreateCommand())
{
command.CommandType = CommandType.Text;
command.CommandText = sqlstring;
loadContextId = (int)command.ExecuteScalar();
}
}
为保持简洁,我省略了 FileUpload 上的实际构造函数 class。我已经调试了我的项目并且一切都得到了纠正,但是当它到达 using
语句时我的项目失败了。
我得到的错误是:
Format of the initialization string does not conform to specification starting at index 0.
对此的快速搜索告诉我我的连接格式有问题,所以我通过将连接线直接粘贴到方法中来测试它,我的项目 运行 很好。所以我不知道为什么会发生这种情况,因为我的 SQL 连接看起来是正确的。
任何人都可以阐明这一点吗?
因为您正在将 DbRepository 对象本身 (databaseConnectionString) 读入您的 connectionString 变量,而不是 ConnectionString 属性。因此,除非您将 DbRepository.ToString() 覆盖为 return 连接字符串,否则您不会取回连接字符串,而只会取回对象类型。
像这样创建您的 BaseRepository。
public class BaseRepository
{
public static string ConnectionString { get; set; }
static BaseRepository ()
{
ConnectionString = ConfigurationManager.AppSettings["dbConn"];
}
}
你的存储库 class 应该是这样的。
public class YourRepostiory : BaseRepository
{
public void YourMethod()
{
var connectionString = base.ConnectionString;
using (var conn = new SqlConnection(connectionString))
{
conn.Open();
using (var command = conn.CreateCommand())
{
command.CommandType = CommandType.Text;
command.CommandText = sqlstring;
loadContextId = (int)command.ExecuteScalar();
}
}
}
}
希望对您有所帮助!!