【发布时间】:2013-01-25 11:50:24
【问题描述】:
C#代码:
command = new SqlCommand(null, connection);
command = createSQLQuery(command); // returns a valid SQL Query that returns results in SQL Management Studio 2012
//dataGridView1.DataSource = GetData(command);
connection.Open();
SqlDataReader reader = command.ExecuteReader();
connection.Close();
dataGridView1.DataSource = GetData(command);
debugMySQL();
public DataTable GetData(SqlCommand cmd) {
//SqlConnection con = new SqlConnection(connString);
//SqlCommand cmd = new SqlCommand(sqlcmdString, cn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
connection.Open();
DataTable dt = new DataTable();
da.Fill(dt);
connection.Close();
return dt;
}
我正在使用带有 WinForm 的 C# 并使用 Visual Studio 2012 进行开发。
【问题讨论】:
-
会不会是在调用
GetData之前调用connection.Close();? -
这是个好主意,所以我在设置数据源后关闭了连接。然后我在 da.Fill(dt) 收到一个错误,说“已经有一个打开的 DataReader 与此命令关联,必须先关闭。”
-
第一个代码块调用
GetData两次。这是故意的吗? -
没有。直到现在我才看到。谢谢:)
-
它仍然在 da.Fill(dt) 处产生相同的错误,说“已经有一个打开的 DataReader...”
标签: c# sql-server winforms datatable