上一篇我們寫了Unity3D連接MySQL數據庫,這篇來看看如何讀取與存儲數據。 廢話不多說,先上代碼,后面分析。
public void HandleMsg(string str) { // 獲取數據 if (str == "_GET") { string cmdStr = "select * from msg order by id desc limit 10;"; MySqlCommand cmd = new MySqlCommand (cmdStr, sqlConn); try { MySqlDataReader dataReader = cmd.ExecuteReader (); str = ""; while (dataReader.Read ()) { str += dataReader ["name"] + ":" + dataReader ["msg"] + "/n/r"; } dataReader.Close (); } catch (Exception ex) { Console.WriteLine ("[數據庫]查詢失敗" + ex.Message); } } else { // 存儲數據 string cmdStrFormat = "insert into msg set name='{0}',msg='{1}';"; string cmdStr = string.Format (cmdStrFormat, conn.GetAddress (), str); MySqlCommand cmd = new MySqlCommand (cmdStr, sqlConn); try { cmd.ExecuteNonQuery(); } catch (Exception ex) { Console.WriteLine ("[數據庫]插入失敗" + ex.Message); } } }sqlConn是上一篇我們聲明指向MySQL連接的成員。
我們創建了一個叫msg的數據表,里面包含的信息是: 
MySqlCommand用于封裝SQL語句,通過它的ExecuteReader或ExecuteNonQuery便可以執行對應的SQL語句。MySqlDataReader提供了一種從數據集讀取數據的方法,在調用它的Read方法后,dataReader指向下一條語句。如果當前是最后一條記錄,那么Read方法將返回null,由此可以通過while (dataReader.Read ())遍歷數據集中的所有數據。
注意:部分版本的MySQL不支持“insert into msg set name=’{0}’,msg=’{1}’;”的形式,這時可以將該語句改為“insert into msg(“name”,”msg”) values(“{0}”,”{1}”);”的形式,以使MySQL不報錯。
新聞熱點
疑難解答