在我的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"]
});
我将数据传递到我需要的地方,然后传递给我的类构造函数,如下所示:
FileUpload files = new FileUpload(repo, outPutFolder);
最后,我将其设置在目标类中的所需位置,如下所示:
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类上的实际构造函数。我调试了我的项目,所有内容都得到了修正,但是当我的项目进入using
语句时,我的项目失败了。
我得到的错误是:
初始化字符串的格式不符合规范 从索引0开始。
对此的快速搜索告诉我,我的连接格式存在问题,所以我通过将连接线直接粘贴到方法中来测试它,我的项目运行正常。所以我不知道为什么会发生这种情况,因为我的SQL连接看起来是正确的。
有人可以对此有所了解吗?
答案 0 :(得分:2)
因为您正在将DbRepository对象本身(databaseConnectionString)读入您的connectionString变量,而不是ConnectionString属性。因此,除非您重写DbRepository.ToString()以返回连接字符串,否则您不会返回连接字符串而只返回对象类型。
答案 1 :(得分:0)
像这样创建BaseRepository。
public class BaseRepository
{
public static string ConnectionString { get; set; }
static BaseRepository ()
{
ConnectionString = ConfigurationManager.AppSettings["dbConn"];
}
}
您的存储库类应该是这样的。
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();
}
}
}
}
希望这会对你有所帮助!!