C# 如何只连接一次数据库,然后执行3次写SQL语句将3条记录插入到数据库

27 篇文章 3 订阅

我有一个数据库,共有50多个字段,我准备将3条记录依次插入到数据库中,但是我下面的程序,连接了3次数据库,执行速度太慢,我想改造成只连接一次数据库,然后将3条记录插入到数据库中。

     下面是我的原始程序代码:

//插入第一条记录
string conStr = "server=localhost;port=3306;user Id=root;password=8331; database=tp ;Allow User Variables=True";
            MySqlConnection conn = new MySqlConnection(conStr);
            try
            {
              conn.Open();
                MySqlCommand cmd = new MySqlCommand("insert into table1(id,d_date,d_time,td1,td2,td3,td4,td5,td6,td7,td8,td9,td10,td11,td12,td13,td14,td15,td16,td17,td18,td19,td20,td21,td22,td23,td24,td25,td26,td27,td28,td29,td30,td31,td32,td33,td34,td35,td36,td37,td38,td39,td40,pd1,pd2,pd3,pd4,pd5,pd6,pd7,pd8,pd9,pd10,a_press)  VALUES(@id,@d_date,@d_time,@td1,@td2,@td3,@td4,@td5,@td6,@td7,@td8,@td9,@td10,@td11,@td12,@td13,@td14,@td15,@td16,@td17,@td18,@td19,@td20,@td21,@td22,@td23,@td24,@td25,@td26,@td27,@td28,@td29,@td30,@td31,@td32,@td33,@td34,@td35,@td36,@td37,@td38,@td39,@td40,@pd1,@pd2,@pd3,@pd4,@pd5,@pd6,@pd7,@pd8,@pd9,@pd10,@a_press);", conn);
                cmd.Parameters.AddWithValue("@id", CableNo);
                cmd.Parameters.AddWithValue("@d_date", dt);
                cmd.Parameters.AddWithValue("@d_time", dt);
                cmd.Parameters.AddWithValue("@td1", ftd[0]);
                cmd.Parameters.AddWithValue("@td2", ftd[1]);
                cmd.Parameters.AddWithValue("@td3", ftd[2]);
                    cmd.Parameters.AddWithValue("@td4", ftd[3]);
                    cmd.Parameters.AddWithValue("@td5", ftd[4]);
                    cmd.Parameters.AddWithValue("@td6", ftd[5]);
                    cmd.Parameters.AddWithValue("@td7", ftd[6]);
                    cmd.Parameters.AddWithValue("@td8", ftd[7]);
                    cmd.Parameters.AddWithValue("@td9", ftd[8]);
                    cmd.Parameters.AddWithValue("@td10", ftd[9]);
                    cmd.Parameters.AddWithValue("@td11", ftd[10]);
                    cmd.Parameters.AddWithValue("@td12", ftd[11]);
                    cmd.Parameters.AddWithValue("@td13", ftd[12]);
                    cmd.Parameters.AddWithValue("@td14", ftd[13]);
                    cmd.Parameters.AddWithValue("@td15", ftd[14]);
                    cmd.Parameters.AddWithValue("@td16", ftd[15]);
                    cmd.Parameters.AddWithValue("@td17", ftd[16]);
                    cmd.Parameters.AddWithValue("@td18", ftd[17]);
                    cmd.Parameters.AddWithValue("@td19", ftd[18]);
                    cmd.Parameters.AddWithValue("@td20", ftd[19]);
                    cmd.Parameters.AddWithValue("@td21", ftd[20]);
                    cmd.Parameters.AddWithValue("@td22", ftd[21]);
                    cmd.Parameters.AddWithValue("@td23", ftd[22]);
                    cmd.Parameters.AddWithValue("@td24", ftd[23]);
                    cmd.Parameters.AddWithValue("@td25", ftd[24]);
                    cmd.Parameters.AddWithValue("@td26", ftd[25]);
                    cmd.Parameters.AddWithValue("@td27", ftd[26]);
                    cmd.Parameters.AddWithValue("@td28", ftd[27]);
                    cmd.Parameters.AddWithValue("@td29", ftd[28]);
                    cmd.Parameters.AddWithValue("@td30", ftd[29]);
                    cmd.Parameters.AddWithValue("@td31", ftd[30]);
                    cmd.Parameters.AddWithValue("@td32", ftd[31]);
                    cmd.Parameters.AddWithValue("@td33", ftd[32]);
                    cmd.Parameters.AddWithValue("@td34", ftd[33]);
                    cmd.Parameters.AddWithValue("@td35", ftd[34]);
                    cmd.Parameters.AddWithValue("@td36", ftd[35]);
                    cmd.Parameters.AddWithValue("@td37", ftd[36]);
                    cmd.Parameters.AddWithValue("@td38", ftd[37]);
                    cmd.Parameters.AddWithValue("@td39", ftd[38]);
                    cmd.Parameters.AddWithValue("@td40", ftd[39]);
                    cmd.Parameters.AddWithValue("@pd1", fpd[0]);
                    cmd.Parameters.AddWithValue("@pd2", fpd[1]);
                    cmd.Parameters.AddWithValue("@pd3", fpd[2]);
                    cmd.Parameters.AddWithValue("@pd4", fpd[3]);
                    cmd.Parameters.AddWithValue("@pd5", fpd[4]);
                    cmd.Parameters.AddWithValue("@pd6", fpd[5]);
                    cmd.Parameters.AddWithValue("@pd7", fpd[6]);
                    cmd.Parameters.AddWithValue("@pd8", fpd[7]);
                    cmd.Parameters.AddWithValue("@pd9", fpd[8]);
                    cmd.Parameters.AddWithValue("@pd10", fpd[9]);
                    cmd.Parameters.AddWithValue("@a_press", fpress);
                    cmd.ExecuteNonQuery();

            }
            catch (Exception ex)//创建检查Exception对象             
            {
                MessageBox.Show(ex.Message);//输出错误信息 
            }
            finally
            {
                conn.Close();//关闭连接  
            }
        }


//插入第二条记录
     string conStr = "server=localhost;port=3306;user Id=root;password=8331; database=tp ;Allow User Variables=True";
            MySqlConnection conn = new MySqlConnection(conStr);
            try
            {
               conn.Open();
                MySqlCommand cmd = new MySqlCommand("insert into table1(id,d_date,d_time,td1,td2,td3,td4,td5,td6,td7,td8,td9,td10,td11,td12,td13,td14,td15,td16,td17,td18,td19,td20,td21,td22,td23,td24,td25,td26,td27,td28,td29,td30,td31,td32,td33,td34,td35,td36,td37,td38,td39,td40,pd1,pd2,pd3,pd4,pd5,pd6,pd7,pd8,pd9,pd10,a_press)  VALUES(@id,@d_date,@d_time,@td1,@td2,@td3,@td4,@td5,@td6,@td7,@td8,@td9,@td10,@td11,@td12,@td13,@td14,@td15,@td16,@td17,@td18,@td19,@td20,@td21,@td22,@td23,@td24,@td25,@td26,@td27,@td28,@td29,@td30,@td31,@td32,@td33,@td34,@td35,@td36,@td37,@td38,@td39,@td40,@pd1,@pd2,@pd3,@pd4,@pd5,@pd6,@pd7,@pd8,@pd9,@pd10,@a_press);", conn);
                cmd.Parameters.AddWithValue("@id", CableNo);
                cmd.Parameters.AddWithValue("@d_date", dt);
                cmd.Parameters.AddWithValue("@d_time", dt);
                cmd.Parameters.AddWithValue("@td1", ftd[0]);
                cmd.Parameters.AddWithValue("@td2", ftd[1]);
                cmd.Parameters.AddWithValue("@td3", ftd[2]);
                   cmd.Parameters.AddWithValue("@td4", ftd[3]);
                    cmd.Parameters.AddWithValue("@td5", ftd[4]);
                    cmd.Parameters.AddWithValue("@td6", ftd[5]);
                    cmd.Parameters.AddWithValue("@td7", ftd[6]);
                    cmd.Parameters.AddWithValue("@td8", ftd[7]);
                    cmd.Parameters.AddWithValue("@td9", ftd[8]);
                    cmd.Parameters.AddWithValue("@td10", ftd[9]);
                    cmd.Parameters.AddWithValue("@td11", ftd[10]);
                    cmd.Parameters.AddWithValue("@td12", ftd[11]);
                    cmd.Parameters.AddWithValue("@td13", ftd[12]);
                    cmd.Parameters.AddWithValue("@td14", ftd[13]);
                    cmd.Parameters.AddWithValue("@td15", ftd[14]);
                    cmd.Parameters.AddWithValue("@td16", ftd[15]);
                    cmd.Parameters.AddWithValue("@td17", ftd[16]);
                    cmd.Parameters.AddWithValue("@td18", ftd[17]);
                    cmd.Parameters.AddWithValue("@td19", ftd[18]);
                    cmd.Parameters.AddWithValue("@td20", ftd[19]);
                    cmd.Parameters.AddWithValue("@td21", ftd[20]);
                    cmd.Parameters.AddWithValue("@td22", ftd[21]);
                    cmd.Parameters.AddWithValue("@td23", ftd[22]);
                    cmd.Parameters.AddWithValue("@td24", ftd[23]);
                    cmd.Parameters.AddWithValue("@td25", ftd[24]);
                    cmd.Parameters.AddWithValue("@td26", ftd[25]);
                    cmd.Parameters.AddWithValue("@td27", ftd[26]);
                    cmd.Parameters.AddWithValue("@td28", ftd[27]);
                    cmd.Parameters.AddWithValue("@td29", ftd[28]);
                    cmd.Parameters.AddWithValue("@td30", ftd[29]);
                    cmd.Parameters.AddWithValue("@td31", ftd[30]);
                    cmd.Parameters.AddWithValue("@td32", ftd[31]);
                    cmd.Parameters.AddWithValue("@td33", ftd[32]);
                    cmd.Parameters.AddWithValue("@td34", ftd[33]);
                    cmd.Parameters.AddWithValue("@td35", ftd[34]);
                    cmd.Parameters.AddWithValue("@td36", ftd[35]);
                    cmd.Parameters.AddWithValue("@td37", ftd[36]);
                    cmd.Parameters.AddWithValue("@td38", ftd[37]);
                    cmd.Parameters.AddWithValue("@td39", ftd[38]);
                    cmd.Parameters.AddWithValue("@td40", ftd[39]);
                    cmd.Parameters.AddWithValue("@pd1", fpd[0]);
                    cmd.Parameters.AddWithValue("@pd2", fpd[1]);
                    cmd.Parameters.AddWithValue("@pd3", fpd[2]);
                    cmd.Parameters.AddWithValue("@pd4", fpd[3]);
                    cmd.Parameters.AddWithValue("@pd5", fpd[4]);
                    cmd.Parameters.AddWithValue("@pd6", fpd[5]);
                    cmd.Parameters.AddWithValue("@pd7", fpd[6]);
                    cmd.Parameters.AddWithValue("@pd8", fpd[7]);
                    cmd.Parameters.AddWithValue("@pd9", fpd[8]);
                    cmd.Parameters.AddWithValue("@pd10", fpd[9]);
                    cmd.Parameters.AddWithValue("@a_press", fpress);
 
                cmd.ExecuteNonQuery();

            }
            catch (Exception ex)//创建检查Exception对象             
            {
                MessageBox.Show(ex.Message);//输出错误信息 
            }
            finally
            {
                conn.Close();//关闭连接  
            }
        }


//插入第三条记录
string conStr = "server=localhost;port=3306;user Id=root;password=8331; database=tp ;Allow User Variables=True";
 MySqlConnection conn = new MySqlConnection(conStr);
            try
            {
                conn.Open();
                MySqlCommand cmd = new MySqlCommand("insert into table1(id,d_date,d_time,td1,td2,td3,td4,td5,td6,td7,td8,td9,td10,td11,td12,td13,td14,td15,td16,td17,td18,td19,td20,td21,td22,td23,td24,td25,td26,td27,td28,td29,td30,td31,td32,td33,td34,td35,td36,td37,td38,td39,td40,pd1,pd2,pd3,pd4,pd5,pd6,pd7,pd8,pd9,pd10,a_press)  VALUES(@id,@d_date,@d_time,@td1,@td2,@td3,@td4,@td5,@td6,@td7,@td8,@td9,@td10,@td11,@td12,@td13,@td14,@td15,@td16,@td17,@td18,@td19,@td20,@td21,@td22,@td23,@td24,@td25,@td26,@td27,@td28,@td29,@td30,@td31,@td32,@td33,@td34,@td35,@td36,@td37,@td38,@td39,@td40,@pd1,@pd2,@pd3,@pd4,@pd5,@pd6,@pd7,@pd8,@pd9,@pd10,@a_press);", conn);
                cmd.Parameters.AddWithValue("@id", CableNo);
                cmd.Parameters.AddWithValue("@d_date", dt);
                cmd.Parameters.AddWithValue("@d_time", dt);
                cmd.Parameters.AddWithValue("@td1", ftd[0]);
                cmd.Parameters.AddWithValue("@td2", ftd[1]);
                cmd.Parameters.AddWithValue("@td3", ftd[2]);
                   cmd.Parameters.AddWithValue("@td4", ftd[3]);
                    cmd.Parameters.AddWithValue("@td5", ftd[4]);
                    cmd.Parameters.AddWithValue("@td6", ftd[5]);
                    cmd.Parameters.AddWithValue("@td7", ftd[6]);
                    cmd.Parameters.AddWithValue("@td8", ftd[7]);
                    cmd.Parameters.AddWithValue("@td9", ftd[8]);
                    cmd.Parameters.AddWithValue("@td10", ftd[9]);
                    cmd.Parameters.AddWithValue("@td11", ftd[10]);
                    cmd.Parameters.AddWithValue("@td12", ftd[11]);
                    cmd.Parameters.AddWithValue("@td13", ftd[12]);
                    cmd.Parameters.AddWithValue("@td14", ftd[13]);
                    cmd.Parameters.AddWithValue("@td15", ftd[14]);
                    cmd.Parameters.AddWithValue("@td16", ftd[15]);
                    cmd.Parameters.AddWithValue("@td17", ftd[16]);
                    cmd.Parameters.AddWithValue("@td18", ftd[17]);
                    cmd.Parameters.AddWithValue("@td19", ftd[18]);
                    cmd.Parameters.AddWithValue("@td20", ftd[19]);
                    cmd.Parameters.AddWithValue("@td21", ftd[20]);
                    cmd.Parameters.AddWithValue("@td22", ftd[21]);
                    cmd.Parameters.AddWithValue("@td23", ftd[22]);
                    cmd.Parameters.AddWithValue("@td24", ftd[23]);
                    cmd.Parameters.AddWithValue("@td25", ftd[24]);
                    cmd.Parameters.AddWithValue("@td26", ftd[25]);
                    cmd.Parameters.AddWithValue("@td27", ftd[26]);
                    cmd.Parameters.AddWithValue("@td28", ftd[27]);
                    cmd.Parameters.AddWithValue("@td29", ftd[28]);
                    cmd.Parameters.AddWithValue("@td30", ftd[29]);
                    cmd.Parameters.AddWithValue("@td31", ftd[30]);
                    cmd.Parameters.AddWithValue("@td32", ftd[31]);
                    cmd.Parameters.AddWithValue("@td33", ftd[32]);
                    cmd.Parameters.AddWithValue("@td34", ftd[33]);
                    cmd.Parameters.AddWithValue("@td35", ftd[34]);
                    cmd.Parameters.AddWithValue("@td36", ftd[35]);
                    cmd.Parameters.AddWithValue("@td37", ftd[36]);
                    cmd.Parameters.AddWithValue("@td38", ftd[37]);
                    cmd.Parameters.AddWithValue("@td39", ftd[38]);
                    cmd.Parameters.AddWithValue("@td40", ftd[39]);

                    cmd.Parameters.AddWithValue("@pd1", fpd[0]);
                    cmd.Parameters.AddWithValue("@pd2", fpd[1]);
                    cmd.Parameters.AddWithValue("@pd3", fpd[2]);
                    cmd.Parameters.AddWithValue("@pd4", fpd[3]);
                    cmd.Parameters.AddWithValue("@pd5", fpd[4]);
                    cmd.Parameters.AddWithValue("@pd6", fpd[5]);
                    cmd.Parameters.AddWithValue("@pd7", fpd[6]);
                    cmd.Parameters.AddWithValue("@pd8", fpd[7]);
                    cmd.Parameters.AddWithValue("@pd9", fpd[8]);
                    cmd.Parameters.AddWithValue("@pd10", fpd[9]);
                    cmd.Parameters.AddWithValue("@a_press", fpress);    
                cmd.ExecuteNonQuery();

            }
            catch (Exception ex)//创建检查Exception对象             
            {
                MessageBox.Show(ex.Message);//输出错误信息 
            }
            finally
            {
                conn.Close();//关闭连接  
            }
        }

下面是最新改造后的程序

         private void button2_Click(object sender, EventArgs e)
        {
            string CableNo="XXXXXXX";
            float[] ftd = new float[40];
            float[] fpd = new float[10];
            float fpress=0x06;
            MySqlTransaction tran = null;
            string conStr = "server=localhost;port=3306;user Id=root;password=31; database=tx ;Allow User Variables=True";
            MySqlConnection conn = new MySqlConnection(conStr);
            try
            {
                conn.Open();
                tran = conn.BeginTransaction();
                MySqlCommand cmd = new MySqlCommand("insert into table1(id,d_date,d_time,td1,td2,td3,td4,td5,td6,td7,td8,td9,td10,td11,td12,td13,td14,td15,td16,td17,td18,td19,td20,td21,td22,td23,td24,td25,td26,td27,td28,td29,td30,td31,td32,td33,td34,td35,td36,td37,td38,td39,td40,pd1,pd2,pd3,pd4,pd5,pd6,pd7,pd8,pd9,pd10,a_press)  VALUES(@id,@d_date,@d_time,@td1,@td2,@td3,@td4,@td5,@td6,@td7,@td8,@td9,@td10,@td11,@td12,@td13,@td14,@td15,@td16,@td17,@td18,@td19,@td20,@td21,@td22,@td23,@td24,@td25,@td26,@td27,@td28,@td29,@td30,@td31,@td32,@td33,@td34,@td35,@td36,@td37,@td38,@td39,@td40,@pd1,@pd2,@pd3,@pd4,@pd5,@pd6,@pd7,@pd8,@pd9,@pd10,@a_press);", conn);
                for (int k = 0; k < 3; k++)
                {
                    switch (k)
                    {
                        case 0:
                            CableNo = "COM1";
                            break;
                        case 1:
                            CableNo = "COM2";
                            break;
                        case 2:
                            CableNo = "COM3";
                            break;                      
                    }
                    for (int i = 0; i < 40; i++)
                        ftd[i] = k + 1;
                    for (int j = 0; j < 10; j++)
                        fpd[j] = k * 10 + 1;

                    cmd.Parameters.AddWithValue("@id", CableNo);
                    cmd.Parameters.AddWithValue("@d_date", "2021-03-30 09:00:00");
                    cmd.Parameters.AddWithValue("@d_time", "2021-03-30 09:00:00");
                    cmd.Parameters.AddWithValue("@td1", ftd[0]);
                    cmd.Parameters.AddWithValue("@td2", ftd[1]);
                    cmd.Parameters.AddWithValue("@td3", ftd[2]);
                    cmd.Parameters.AddWithValue("@td4", ftd[3]);
                    cmd.Parameters.AddWithValue("@td5", ftd[4]);
                    cmd.Parameters.AddWithValue("@td6", ftd[5]);
                    cmd.Parameters.AddWithValue("@td7", ftd[6]);
                    cmd.Parameters.AddWithValue("@td8", ftd[7]);
                    cmd.Parameters.AddWithValue("@td9", ftd[8]);
                    cmd.Parameters.AddWithValue("@td10", ftd[9]);
                    cmd.Parameters.AddWithValue("@td11", ftd[10]);
                    cmd.Parameters.AddWithValue("@td12", ftd[11]);
                    cmd.Parameters.AddWithValue("@td13", ftd[12]);
                    cmd.Parameters.AddWithValue("@td14", ftd[13]);
                    cmd.Parameters.AddWithValue("@td15", ftd[14]);
                    cmd.Parameters.AddWithValue("@td16", ftd[15]);
                    cmd.Parameters.AddWithValue("@td17", ftd[16]);
                    cmd.Parameters.AddWithValue("@td18", ftd[17]);
                    cmd.Parameters.AddWithValue("@td19", ftd[18]);
                    cmd.Parameters.AddWithValue("@td20", ftd[19]);
                    cmd.Parameters.AddWithValue("@td21", ftd[20]);
                    cmd.Parameters.AddWithValue("@td22", ftd[21]);
                    cmd.Parameters.AddWithValue("@td23", ftd[22]);
                    cmd.Parameters.AddWithValue("@td24", ftd[23]);
                    cmd.Parameters.AddWithValue("@td25", ftd[24]);
                    cmd.Parameters.AddWithValue("@td26", ftd[25]);
                    cmd.Parameters.AddWithValue("@td27", ftd[26]);
                    cmd.Parameters.AddWithValue("@td28", ftd[27]);
                    cmd.Parameters.AddWithValue("@td29", ftd[28]);
                    cmd.Parameters.AddWithValue("@td30", ftd[29]);
                    cmd.Parameters.AddWithValue("@td31", ftd[30]);
                    cmd.Parameters.AddWithValue("@td32", ftd[31]);
                    cmd.Parameters.AddWithValue("@td33", ftd[32]);
                    cmd.Parameters.AddWithValue("@td34", ftd[33]);
                    cmd.Parameters.AddWithValue("@td35", ftd[34]);
                    cmd.Parameters.AddWithValue("@td36", ftd[35]);
                    cmd.Parameters.AddWithValue("@td37", ftd[36]);
                    cmd.Parameters.AddWithValue("@td38", ftd[37]);
                    cmd.Parameters.AddWithValue("@td39", ftd[38]);
                    cmd.Parameters.AddWithValue("@td40", ftd[39]);

                    cmd.Parameters.AddWithValue("@pd1", fpd[0]);
                    cmd.Parameters.AddWithValue("@pd2", fpd[1]);
                    cmd.Parameters.AddWithValue("@pd3", fpd[2]);
                    cmd.Parameters.AddWithValue("@pd4", fpd[3]);
                    cmd.Parameters.AddWithValue("@pd5", fpd[4]);
                    cmd.Parameters.AddWithValue("@pd6", fpd[5]);
                    cmd.Parameters.AddWithValue("@pd7", fpd[6]);
                    cmd.Parameters.AddWithValue("@pd8", fpd[7]);
                    cmd.Parameters.AddWithValue("@pd9", fpd[8]);
                    cmd.Parameters.AddWithValue("@pd10", fpd[9]);
                    cmd.Parameters.AddWithValue("@a_press", fpress);
                    cmd.ExecuteNonQuery();
                    cmd.Parameters.Clear();
                 
                }
                tran.Commit();//提交事务
            }
            catch (Exception ex)//创建检查Exception对象             
            {
                MessageBox.Show(ex.Message);//输出错误信息
                if (tran != null) tran.Rollback();
            }
            finally
            {
                if (tran != null)
                    tran.Dispose();
                if (conn.State == ConnectionState.Open)
                    conn.Close();//关闭连接  
            }
        }
        
    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值