Unity3D -- 使用数据库MySQL(数据存储之二)

上一篇我们写了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不报错。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值