【发布时间】:2022-01-07 11:49:54
【问题描述】:
我有一些这样的代码:
var queryIns = "...";
try
{
var rowInsert = u.insert(queryIns);
}
catch (Exception)
{
var msg = "Error";
MessageBox.Show(msg,...);
}
我的命令是:
public int Command(string queryCommand)
{
using var conn = openConnection(); //private method that returns the connection with connection string
using OleDbCommand cmd = getCommand(queryCommand, conn); //private method that returns the command with connection and query
return cmd.ExecuteNonQuery();
}
最后是这些方法:
private OleDbCommand getCommand(string queryString, OleDbConnection conn)
{
using var cmd = new OleDbCommand(queryString, conn);
return cmd;
}
private OleDbConnection openConnection()
{
using var conn= new OleDbConnection(connString);
conn.Open();
return conn;
}
问题是这一切都会引发异常
ExecuteNonQuery:连接属性尚未初始化
有人可以帮我T_T吗?
【问题讨论】:
-
问题是你在那个方法中有
using var conn,它会在方法结束时关闭连接,这意味着它返回一个关闭的连接。相反,您应该保留创建连接并以一种方法一起执行查询的代码。
标签: c# ms-access-2010 sql-insert executenonquery