Dapper 未初始化 ConnectionString 属性 错误
The ConnectionString property has not been initialized Error with Dapper
我执行 SQL 插入命令的代码是这样的
foreach (var id in idlist)
{
_connection.Open();
var sql = "sql query"
var parameters = ....
await _connection.ExecuteAsync(sql, parameters);
_connection.Close();
}
看起来一切正常,但是循环只运行了一次成功,第二次进入就报错
The ConnectionString property has not been initialized.
谁能指出我这里可能做错了什么?
注意:我也尝试将连接打开和关闭移出循环,但结果仍然相同。
您的代码应如下所示:
_connection.Open();
var sql = "sql query"
foreach (var id in idlist)
{
var parameters = ....
await _connection.ExecuteAsync(sql, parameters);
}
_connection.Close();
如果您只执行一次,请忽略打开和关闭(Dapper 会这样做),除非您的连接已注册到事务中
_connection
的命名就好像它是一个 class 级变量一样。当循环为 运行 时,请确保您没有在别处操纵它。我不会说您通过持有对连接的引用而获得很多,也许可以考虑:
using var connection = new SqlConnection("your conn string");
connection.Open();
var sql = "sql query"
foreach (var id in idlist)
{
var parameters = ....
await _connection.ExecuteAsync(sql, parameters);
}
connection.Close();
错误处理将根据您想要执行的操作而有所不同,例如,如果一个插入在批次中失败 - 全部转储,停止并修复,忽略并继续。
我执行 SQL 插入命令的代码是这样的
foreach (var id in idlist)
{
_connection.Open();
var sql = "sql query"
var parameters = ....
await _connection.ExecuteAsync(sql, parameters);
_connection.Close();
}
看起来一切正常,但是循环只运行了一次成功,第二次进入就报错
The ConnectionString property has not been initialized.
谁能指出我这里可能做错了什么?
注意:我也尝试将连接打开和关闭移出循环,但结果仍然相同。
您的代码应如下所示:
_connection.Open();
var sql = "sql query"
foreach (var id in idlist)
{
var parameters = ....
await _connection.ExecuteAsync(sql, parameters);
}
_connection.Close();
如果您只执行一次,请忽略打开和关闭(Dapper 会这样做),除非您的连接已注册到事务中
_connection
的命名就好像它是一个 class 级变量一样。当循环为 运行 时,请确保您没有在别处操纵它。我不会说您通过持有对连接的引用而获得很多,也许可以考虑:
using var connection = new SqlConnection("your conn string");
connection.Open();
var sql = "sql query"
foreach (var id in idlist)
{
var parameters = ....
await _connection.ExecuteAsync(sql, parameters);
}
connection.Close();
错误处理将根据您想要执行的操作而有所不同,例如,如果一个插入在批次中失败 - 全部转储,停止并修复,忽略并继续。