我有一个数据库,共有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();//关闭连接
}
}
}