上一篇我们写了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不报错。
新闻热点
疑难解答