c#对mysql的批量插入

来源:互联网 发布:mac表情 编辑:程序博客网 时间:2024/06/05 19:47

一、背景介绍

        由于工作需要,实现了C#对mysql进行大批量记录进行插入,也包括单条插入。最先,在网上搜了很久,例子非常少。难道是mysql不够普及,还是mysql作为开源数据库不被大厂商采用,总之,搜来搜去就那几个例子;并且有的编译错误、有的语句不完整,没有一个可以拿来使用。后来,通过咨询同事、查阅资料、拼凑代码,最终执行成功。现在,把具体方法记录如下,以供后来者参考之。

二、控件安装说明

        使用环境为VS2008。

        mysql查询、建表工具为 navicat for mysql10.0.11。

        安装MySQLDriverCS-n-EasyQueryTools-4.0.1-DotNet2.0.exe。

        vs2008当中添加相应引用。

三、操作mysql数据库

        mysql可以通过一条语句,执行批量操作。即把所要插入的所有记录都写入到一条语句当中,每个记录之间用逗号隔开,然后执行该语句即可。

        程序文件添加引用 using MySQLDriverCS;

        接下来,就可以来操作mysql数据库了,具体代码如下:

        //该函数实现数据语句的执行操作

        private void ExeMysql(string sql)

        {

            //连接参数

           m_service = "127.0.0.1";    //服务器,本机

           m_database = "test";   //数据库名称

           m_user = "root"; //用户名,默认"root"

           m_pws = ""; //密码,空值

            //连接数据库

            MySQLConnection mCon = new MySQLConnection(new MySQLConnectionString(m_service, m_dataBase, m_user, m_pws, 3306).AsString);            

             mCon.Open();

            //执行sql语句
            MySQLCommand mCmd = new MySQLCommand(sql, mCon);
            mCmd.ExecuteNonQuery();
         

            //关闭连接、释放资源   

            mCmd.Dispose();
            mCon.Close();
            mCon.Dispose();

         }

         

         //调用执行

        private void button1_Click(object sender, EventArgs e)
        {

              //多条记录通过逗号分隔,最后一条后面不加。

              string sql = insert into table (field1, field2, field3, fiedl3, fiedl4, field5)  values  (item1, item2, item3, item4, item5),

                                                                                                                                                         (item1, item2, item3, item4, item5),

                                                                                                                                                                                     ......

                                                                                                                                                         (item1, item2, item3, item4, item5);

               //一次插入记录的条数可自行控制,但是建议500条执行一次,否则,记录数过多,会影响效率

               ExeMysql(sql);

        }


附插入语句实际例子:

insert into T_CO_201506WattHourMeterInfo (F_MeasurementPoints,F_KeyName,F_Key,F_DataCollectionTime,F_DataInputTime) values ('1234','10119010',98.306,'2015-08-12 0:00:00','2015-08-12 0:00:00'),('1234','10119011',92.536,'2015-08-12 0:00:00','2015-08-12 0:00:00'),('1234','10119010',92.536,'2015-08-12 1:00:00','2015-08-12 1:00:00'),('1234','10119011',92.536,'2015-08-12 1:00:00','2015-08-12 1:00:00'),('1234','10119010',92.536,'2015-08-12 2:00:00','2015-08-12 2:00:00'),('1234','10119011',92.536,'2015-08-12 2:00:00','2015-08-12 2:00:00'),('1234','10119010',92.536,'2015-08-12 3:00:00','2015-08-12 3:00:00'),('1234','10119011',92.536,'2015-08-12 3:00:00','2015-08-12 3:00:00'),('2222','10119010',97.521,'2015-08-12 15:00:00','2015-08-12 15:00:00'),('2222','10119011',97.521,'2015-08-12 15:00:00','2015-08-12 15:00:00'),('2222','10119010',97.521,'2015-08-12 16:00:00','2015-08-12 16:00:00'),('2222','10119011',97.521,'2015-08-12 16:00:00','2015-08-12 16:00:00'),('2222','10119010',97.521,'2015-08-12 17:00:00','2015-08-12 17:00:00'),('2222','10119011',97.521,'2015-08-12 17:00:00','2015-08-12 17:00:00'),('2222','10119010',97.521,'2015-08-12 18:00:00','2015-08-12 18:00:00'),('2222','10119011',97.521,'2015-08-12 18:00:00','2015-08-12 18:00:00'),('2222','10119010',97.521,'2015-08-12 19:00:00','2015-08-12 19:00:00'),('2222','10119011',97.521,'2015-08-12 19:00:00','2015-08-12 19:00:00'),('2222','10119010',97.521,'2015-08-12 20:00:00','2015-08-12 20:00:00'),('2222','10119011',97.521,'2015-08-12 20:00:00','2015-08-12 20:00:00'),('2222','10119010',97.521,'2015-08-12 21:00:00','2015-08-12 21:00:00'),('2222','10119011',97.521,'2015-08-12 21:00:00','2015-08-12 21:00:00'),('2222','10119010',97.521,'2015-08-12 22:00:00','2015-08-12 22:00:00'),('2222','10119011',97.521,'2015-08-12 22:00:00','2015-08-12 22:00:00'),('2222','10119010',97.521,'2015-08-12 23:00:00','2015-08-12 23:00:00'),('2222','10119011',97.521,'2015-08-12 23:00:00','2015-08-12 23:00:00')

       


       

0 0