我希望這裏有人能夠幫助我或指引我朝着正確的方向前進。我想在C#中創建一個應用程序,我有2個類,DB_Connection和MainForm。 DB_Connection是連接數據庫的地方,MainForm是包含我的接口的主窗體。在表單之間傳遞字符串變量
我發現自己很難過,我試圖從我的DB_Connection窗體傳遞一個字符串到MainForm都沒有成功。這是應該做的是從數據庫中獲取一個查詢,將其分配給usr變量,並將該變量傳遞給MainForm,以便通過消息框收集(作爲示例),所有這些都通過單擊按鈕。
任何幫助表示讚賞,謝謝!
DB_Connection findUsrn方法:
public void findUsrn()
{
try {
conn.Open();
if(conn.State.ToString() != "Open")
{
MessageBox.Show("Could not connect to the database");
return;
}
else
{
sql = "SELECT First_Name FROM all_users";
cmd = new MySqlCommand(sql, conn);
rdr = cmd.ExecuteReader();
while (rdr.Read()) {
usr = rdr.GetString(0);
}
rdr.Close();
conn.Close();
}
} catch (Exception ex) {
MessageBox.Show(ex.Message);
return;
throw;
}
}
的MainForm BtnSearchClick事件:
void BtnSearchClick(object sender, EventArgs e)
{
DB_Connection frmDB = new DB_Connection();
string showUsr = frmDB.getString();
MessageBox.Show(showUsr);
}
一對夫婦諮詢件無直接關係到Q :'conn.Open()'會在無法打開連接時拋出,因此在調用它之後不需要檢查狀態。如果你決定檢查它,不需要首先轉換爲字符串 - 比較它的一個'ConnectionState'枚舉成員,即。 'if(conn.State == ConnectionState.Open)'。最後,C#的可接受命名約定是用PascalCasing全文編寫成員名 - 您不需要這樣做,但它可以幫助其他人閱讀您的代碼。 – driis
感謝您的提示,我已經刪除了部分代碼,如果數據庫脫機,它確實仍然會拋出異常:)但是,您是什麼意思的「成員」?我剛剛在大學學習時剛剛重新獲得C#,呃,我們只是說我離開了編程/編碼,現在只是重新考慮了整個主題。謝謝, – hectormtnezg