我可以从我的WinForms应用程序连接到MySQL数据库。问题是,一旦我登录,如何在不必再次登录的情况下执行多个select语句?
MySqlConnection connection = new MySqlConnection(MyConString);
connection.Open();
MySqlCommand command = connection.CreateCommand();
MySqlDataReader Reader;
command.CommandText = "select id from user ";
然后我想为另一个表执行select语句,而不必再次创建连接。
我该怎么做呢?
我似乎无法做connection.CreateCommand
。
答案 0 :(得分:2)
只要查询在同一个区块内,您就可以使用相同的连接。但是,一旦关闭,您需要重新打开它。
using( YourConnectionObject )
{
... open connection ...
... create your sql querying object... and command
SQLCommand.Connection = YourConnectionObject;
Execute your Query
SQLCommand.CommandText = "a new sql-select statement";
Execute your NEW query while connection still open/active
SQLCommand.CommandText = "a third sql-select statement";
Execute your THIRD query while connection still open/active
... close your connection
}
但是,在您的应用程序中,您可以拥有一个“连接”对象,例如在应用程序级别,或者在表单级别具有必要的登录/连接设置。然后,在每个表单的内部,您可以
Open
Run Query
Run Query
Run Query
Close
根据需要。
答案 1 :(得分:0)
我看到你正在使用DataReader
。每个连接一次只能打开1 DataReader
个。 using
块可以派上用场:
using( var reader = myCommand.ExecuteReader() ) {
while (reader.Read()) {
// get values, do stuff
}
}// reader gets closed
您只在问题中的代码中提示(当前),但这可能是您问题的一部分。您还没有展示如何使用DataReader
,所以我不确定。只是一种可能性。