我目前有一個小應用程序向服務器發送了很多不同的MySQL查詢。我的想法是將連接,查詢和讀取僅包含實際查詢作爲參數。關閉MySQL連接功能
這裏是我的了:
public static MySqlDataReader mySqlRead(string cmdText)
{
string connString = "server=" + ORVars.sqlServerAddr + ";port=" + ORVars.sqlServerPort + ";uid=" + ORVars.sqlServerUID + ";pwd=" + ORVars.sqlServerPass + ";database=" + ORVars.sqlServerDB + ";";
MySqlConnection conn = new MySqlConnection(connString);
MySqlCommand command = conn.CreateCommand();
command.CommandText = cmdText;
try
{
conn.Open();
MySqlDataReader reader = command.ExecuteReader();
return reader;
}
catch (MySqlException)
{
throw;
}
}
我連接,並在此發送查詢:
private void btnLogin_Click(object sender, EventArgs e)
{
string username = txtLogin.Text;
string password = ORFunc.GetMD5Hash(txtPassword.Text);
MySqlDataReader orRead = ORFunc.mySqlRead("SELECT * FROM orUsers WHERE username = '" + username + "' AND pass = '" + password + "'");
while (orRead.Read())
{
MessageBox.Show(orRead["id"].ToString());
}
}
作品就像一個魅力......但是,你可以在上面看到,連接從未關閉。當我在.ExecuteReader()後面添加conn.Close()時,讀者是空的,返回後的所有內容當然是無用的。
也許這是一個愚蠢的問題,但我相當新的C#所以請慷慨,任何暗示讚賞。
歡呼聲,
PRIMUS
偉大的,理解和使用...還要感謝羅素! – PrimuS