我有2個資料庫。
第1個資料庫有5個欄位,欄位名為mac_id , id , timing , sleep_mode , noack_time
第2個資料庫有43個欄位,欄位名為id,欄位2,欄位3,... 欄位43
第一步:在第1個資料庫中查找到 mac_id = "xxxxxx",則從查找到的記錄中取出id的值,假如id="yyyyyy"
第二步:在第2個資料庫中查"yyyyyy"+"01",將查找到的記錄中的欄位值取出
第三步:在第2個資料庫中查"yyyyyy"+"02",將查找到的記錄中的欄位值取出
第四步:在第2個資料庫中查"yyyyyy"+"03",將查找到的記錄中的欄位值取出
我發現我目前的程式查找太費時啦!請問如何減小打開和關閉資料庫的次數,加快查找速度。
以下是程式代碼:
public void Find_Module_Parameters(byte []mac_buffer , int [] parameters_buffer , string []cableid_com_name , string[] device_info , int[] com1_tc_buffer, int[] com2_tc_buffer, int[] com3_tc_buffer)
{
//string mac_id = null;
double []tcx = new double[40];
MySqlConnection conn = null;
MySqlConnection COMconn = null;
try
{
string mac_name = byteToHexStr(mac_buffer);
string conStr = "server=localhost;port=3306;user Id=root;password=winelec68331; database=timing ;Allow User Variables=True"; //連接字串
conn = new MySqlConnection(conStr);
conn.Open();
string sql = "select * from table1 where mac_id = '" + mac_name + "'";
MySqlCommand Cmd = new MySqlCommand(sql, conn);
MySqlDataReader db = Cmd.ExecuteReader();
if (db.Read())
{
parameters_buffer[0] = 1;//查找到MAC地址標識
parameters_buffer[1] = Convert.ToInt32(db["timing"]);
parameters_buffer[2] = Convert.ToInt32(db["sleep_mode"]);
parameters_buffer[3] = Convert.ToInt32(db["noack_time"]);
device_info[0] = mac_name; //溫度深度監控器設備MAC地址編碼
device_info[1] = db["id"].ToString(); //溫度深度監控器編號
device_info[2] = db["res_id"].ToString(); //所屬庫區編號
device_info[3] = db["res_name"].ToString(); //所屬庫區名稱
//conn.Close();
//COM1
string COMconStr = "server=localhost;port=3306;user Id=root;password=winelec68331; database=cableid;Allow User Variables=True"; //連接字串
//MySqlConnection COMconn = new MySqlConnection(COMconStr);
COMconn = new MySqlConnection(COMconStr);
COMconn.Open();
string COM1_Find_Str = device_info[1] + "01";
string COM1sql = "select * from table1 where id = '" + COM1_Find_Str + "'";
MySqlCommand COM1Cmd = new MySqlCommand(COM1sql, COMconn);
MySqlDataReader COM1db = COM1Cmd.ExecuteReader();
if (COM1db.Read())
{
parameters_buffer[4] = Convert.ToInt32(COM1db["temp_n"]);
parameters_buffer[5] = Convert.ToInt32(COM1db["press_n"]);
cableid_com_name[0] = COM1db["id"].ToString();
tcx[0] = Convert.ToDouble(COM1db["tc1"]) * (double)100.0; //放大100倍
tcx[1] = Convert.ToDouble(COM1db["tc2"]) * (double)100.0; //放大100倍
tcx[2] = Convert.ToDouble(COM1db["tc3"]) * (double)100.0; //放大100倍
tcx[3] = Convert.ToDouble(COM1db["tc4"]) * (double)100.0; //放大100倍
tcx[4] = Convert.ToDouble(COM1db["tc5"]) * (double)100.0; //放大100倍
tcx[5] = Convert.ToDouble(COM1db["tc6"]) * (double)100.0; //放大100倍
tcx[6] = Convert.ToDouble(COM1db["tc7"]) * (double)100.0; //放大100倍
tcx[7] = Convert.ToDouble(COM1db["tc8"]) * (double)100.0; //放大100倍
tcx[8] = Convert.ToDouble(COM1db["tc9"]) * (double)100.0; //放大100倍
tcx[9] = Convert.ToDouble(COM1db["tc10"]) * (double)100.0; //放大100倍
tcx[10] = Convert.ToDouble(COM1db["tc11"]) * (double)100.0; //放大100倍
tcx[11] = Convert.ToDouble(COM1db["tc12"]) * (double)100.0; //放大100倍
tcx[12] = Convert.ToDouble(COM1db["tc13"]) * (double)100.0; //放大100倍
tcx[13] = Convert.ToDouble(COM1db["tc14"]) * (double)100.0; //放大100倍
tcx[14] = Convert.ToDouble(COM1db["tc15"]) * (double)100.0; //放大100倍
tcx[15] = Convert.ToDouble(COM1db["tc16"]) * (double)100.0; //放大100倍
tcx[16] = Convert.ToDouble(COM1db["tc17"]) * (double)100.0; //放大100倍
tcx[17] = Convert.ToDouble(COM1db["tc18"]) * (double)100.0; //放大100倍
tcx[18] = Convert.ToDouble(COM1db["tc19"]) * (double)100.0; //放大100倍
tcx[19] = Convert.ToDouble(COM1db["tc20"]) * (double)100.0; //放大100倍
tcx[20] = Convert.ToDouble(COM1db["tc21"]) * (double)100.0; //放大100倍
tcx[21] = Convert.ToDouble(COM1db["tc22"]) * (double)100.0; //放大100倍
tcx[22] = Convert.ToDouble(COM1db["tc23"]) * (double)100.0; //放大100倍
tcx[23] = Convert.ToDouble(COM1db["tc24"]) * (double)100.0; //放大100倍
tcx[24] = Convert.ToDouble(COM1db["tc25"]) * (double)100.0; //放大100倍
tcx[25] = Convert.ToDouble(COM1db["tc26"]) * (double)100.0; //放大100倍
tcx[26] = Convert.ToDouble(COM1db["tc27"]) * (double)100.0; //放大100倍
tcx[27] = Convert.ToDouble(COM1db["tc28"]) * (double)100.0; //放大100倍
tcx[28] = Convert.ToDouble(COM1db["tc29"]) * (double)100.0; //放大100倍
tcx[29] = Convert.ToDouble(COM1db["tc30"]) * (double)100.0; //放大100倍
tcx[30] = Convert.ToDouble(COM1db["tc31"]) * (double)100.0; //放大100倍
tcx[31] = Convert.ToDouble(COM1db["tc32"]) * (double)100.0; //放大100倍
tcx[32] = Convert.ToDouble(COM1db["tc33"]) * (double)100.0; //放大100倍
tcx[33] = Convert.ToDouble(COM1db["tc34"]) * (double)100.0; //放大100倍
tcx[34] = Convert.ToDouble(COM1db["tc35"]) * (double)100.0; //放大100倍
tcx[35] = Convert.ToDouble(COM1db["tc36"]) * (double)100.0; //放大100倍
tcx[36] = Convert.ToDouble(COM1db["tc37"]) * (double)100.0; //放大100倍
tcx[37] = Convert.ToDouble(COM1db["tc38"]) * (double)100.0; //放大100倍
tcx[38] = Convert.ToDouble(COM1db["tc39"]) * (double)100.0; //放大100倍
tcx[39] = Convert.ToDouble(COM1db["tc40"]) * (double)100.0; //放大100倍
for (int i=0;i<40;i++)
com1_tc_buffer[i] = (int)tcx[i];
}
COMconn.Close();
//COM2
COMconn.Open();
string COM2_Find_Str = device_info[1] + "02";
string COM2sql = "select * from table1 where id = '" + COM2_Find_Str + "'";
MySqlCommand COM2Cmd = new MySqlCommand(COM2sql, COMconn);
MySqlDataReader COM2db = COM2Cmd.ExecuteReader();
if (COM2db.Read())
{
parameters_buffer[6] = Convert.ToInt32(COM2db["temp_n"]);
parameters_buffer[7] = Convert.ToInt32(COM2db["press_n"]);
cableid_com_name[1] = COM2db["id"].ToString();
tcx[0] = Convert.ToDouble(COM2db["tc1"]) * (double)100.0; //放大100倍
tcx[1] = Convert.ToDouble(COM2db["tc2"]) * (double)100.0; //放大100倍
tcx[2] = Convert.ToDouble(COM2db["tc3"]) * (double)100.0; //放大100倍
tcx[3] = Convert.ToDouble(COM2db["tc4"]) * (double)100.0; //放大100倍
tcx[4] = Convert.ToDouble(COM2db["tc5"]) * (double)100.0; //放大100倍
tcx[5] = Convert.ToDouble(COM2db["tc6"]) * (double)100.0; //放大100倍
tcx[6] = Convert.ToDouble(COM2db["tc7"]) * (double)100.0; //放大100倍
tcx[7] = Convert.ToDouble(COM2db["tc8"]) * (double)100.0; //放大100倍
tcx[8] = Convert.ToDouble(COM2db["tc9"]) * (double)100.0; //放大100倍
tcx[9] = Convert.ToDouble(COM2db["tc10"]) * (double)100.0; //放大100倍
tcx[10] = Convert.ToDouble(COM2db["tc11"]) * (double)100.0; //放大100倍
tcx[11] = Convert.ToDouble(COM2db["tc12"]) * (double)100.0; //放大100倍
tcx[12] = Convert.ToDouble(COM2db["tc13"]) * (double)100.0; //放大100倍
tcx[13] = Convert.ToDouble(COM2db["tc14"]) * (double)100.0; //放大100倍
tcx[14] = Convert.ToDouble(COM2db["tc15"]) * (double)100.0; //放大100倍
tcx[15] = Convert.ToDouble(COM2db["tc16"]) * (double)100.0; //放大100倍
tcx[16] = Convert.ToDouble(COM2db["tc17"]) * (double)100.0; //放大100倍
tcx[17] = Convert.ToDouble(COM2db["tc18"]) * (double)100.0; //放大100倍
tcx[18] = Convert.ToDouble(COM2db["tc19"]) * (double)100.0; //放大100倍
tcx[19] = Convert.ToDouble(COM2db["tc20"]) * (double)100.0; //放大100倍
tcx[20] = Convert.ToDouble(COM2db["tc21"]) * (double)100.0; //放大100倍
tcx[21] = Convert.ToDouble(COM2db["tc22"]) * (double)100.0; //放大100倍
tcx[22] = Convert.ToDouble(COM2db["tc23"]) * (double)100.0; //放大100倍
tcx[23] = Convert.ToDouble(COM2db["tc24"]) * (double)100.0; //放大100倍
tcx[24] = Convert.ToDouble(COM2db["tc25"]) * (double)100.0; //放大100倍
tcx[25] = Convert.ToDouble(COM2db["tc26"]) * (double
uj5u.com熱心網友回復:
public void Find_Module_Parameters(byte []mac_buffer , int [] parameters_buffer , string []cableid_com_name , string[] device_info , int[] com1_tc_buffer, int[] com2_tc_buffer, int[] com3_tc_buffer)
{
//string mac_id = null;
double []tcx = new double[40];
MySqlConnection conn = null;
MySqlConnection COMconn = null;
try
{
string mac_name = byteToHexStr(mac_buffer);
string conStr = "server=localhost;port=3306;user Id=root;password=winelec68331; database=timing ;Allow User Variables=True"; //連接字串
conn = new MySqlConnection(conStr);
conn.Open();
string sql = "select * from table1 where mac_id = '" + mac_name + "'";
MySqlCommand Cmd = new MySqlCommand(sql, conn);
MySqlDataReader db = Cmd.ExecuteReader();
if (db.Read())
{
parameters_buffer[0] = 1;//查找到MAC地址標識
parameters_buffer[1] = Convert.ToInt32(db["timing"]);
parameters_buffer[2] = Convert.ToInt32(db["sleep_mode"]);
parameters_buffer[3] = Convert.ToInt32(db["noack_time"]);
device_info[0] = mac_name; //溫度深度監控器設備MAC地址編碼
device_info[1] = db["id"].ToString(); //溫度深度監控器編號
device_info[2] = db["res_id"].ToString(); //所屬庫區編號
device_info[3] = db["res_name"].ToString(); //所屬庫區名稱
//conn.Close();
//COM1
string COMconStr = "server=localhost;port=3306;user Id=root;password=winelec68331; database=cableid;Allow User Variables=True"; //連接字串
//MySqlConnection COMconn = new MySqlConnection(COMconStr);
COMconn = new MySqlConnection(COMconStr);
COMconn.Open();
string COM1_Find_Str = device_info[1] + "01";
string COM1sql = "select * from table1 where id = '" + COM1_Find_Str + "'";
MySqlCommand COM1Cmd = new MySqlCommand(COM1sql, COMconn);
MySqlDataReader COM1db = COM1Cmd.ExecuteReader();
if (COM1db.Read())
{
parameters_buffer[4] = Convert.ToInt32(COM1db["temp_n"]);
parameters_buffer[5] = Convert.ToInt32(COM1db["press_n"]);
cableid_com_name[0] = COM1db["id"].ToString();
tcx[0] = Convert.ToDouble(COM1db["tc1"]) * (double)100.0; //放大100倍
tcx[1] = Convert.ToDouble(COM1db["tc2"]) * (double)100.0; //放大100倍
tcx[2] = Convert.ToDouble(COM1db["tc3"]) * (double)100.0; //放大100倍
tcx[3] = Convert.ToDouble(COM1db["tc4"]) * (double)100.0; //放大100倍
tcx[4] = Convert.ToDouble(COM1db["tc5"]) * (double)100.0; //放大100倍
tcx[5] = Convert.ToDouble(COM1db["tc6"]) * (double)100.0; //放大100倍
tcx[6] = Convert.ToDouble(COM1db["tc7"]) * (double)100.0; //放大100倍
tcx[7] = Convert.ToDouble(COM1db["tc8"]) * (double)100.0; //放大100倍
tcx[8] = Convert.ToDouble(COM1db["tc9"]) * (double)100.0; //放大100倍
tcx[9] = Convert.ToDouble(COM1db["tc10"]) * (double)100.0; //放大100倍
tcx[10] = Convert.ToDouble(COM1db["tc11"]) * (double)100.0; //放大100倍
tcx[11] = Convert.ToDouble(COM1db["tc12"]) * (double)100.0; //放大100倍
tcx[12] = Convert.ToDouble(COM1db["tc13"]) * (double)100.0; //放大100倍
tcx[13] = Convert.ToDouble(COM1db["tc14"]) * (double)100.0; //放大100倍
tcx[14] = Convert.ToDouble(COM1db["tc15"]) * (double)100.0; //放大100倍
tcx[15] = Convert.ToDouble(COM1db["tc16"]) * (double)100.0; //放大100倍
tcx[16] = Convert.ToDouble(COM1db["tc17"]) * (double)100.0; //放大100倍
tcx[17] = Convert.ToDouble(COM1db["tc18"]) * (double)100.0; //放大100倍
tcx[18] = Convert.ToDouble(COM1db["tc19"]) * (double)100.0; //放大100倍
tcx[19] = Convert.ToDouble(COM1db["tc20"]) * (double)100.0; //放大100倍
tcx[20] = Convert.ToDouble(COM1db["tc21"]) * (double)100.0; //放大100倍
tcx[21] = Convert.ToDouble(COM1db["tc22"]) * (double)100.0; //放大100倍
tcx[22] = Convert.ToDouble(COM1db["tc23"]) * (double)100.0; //放大100倍
tcx[23] = Convert.ToDouble(COM1db["tc24"]) * (double)100.0; //放大100倍
tcx[24] = Convert.ToDouble(COM1db["tc25"]) * (double)100.0; //放大100倍
tcx[25] = Convert.ToDouble(COM1db["tc26"]) * (double)100.0; //放大100倍
tcx[26] = Convert.ToDouble(COM1db["tc27"]) * (double)100.0; //放大100倍
tcx[27] = Convert.ToDouble(COM1db["tc28"]) * (double)100.0; //放大100倍
tcx[28] = Convert.ToDouble(COM1db["tc29"]) * (double)100.0; //放大100倍
tcx[29] = Convert.ToDouble(COM1db["tc30"]) * (double)100.0; //放大100倍
tcx[30] = Convert.ToDouble(COM1db["tc31"]) * (double)100.0; //放大100倍
tcx[31] = Convert.ToDouble(COM1db["tc32"]) * (double)100.0; //放大100倍
tcx[32] = Convert.ToDouble(COM1db["tc33"]) * (double)100.0; //放大100倍
tcx[33] = Convert.ToDouble(COM1db["tc34"]) * (double)100.0; //放大100倍
tcx[34] = Convert.ToDouble(COM1db["tc35"]) * (double)100.0; //放大100倍
tcx[35] = Convert.ToDouble(COM1db["tc36"]) * (double)100.0; //放大100倍
tcx[36] = Convert.ToDouble(COM1db["tc37"]) * (double)100.0; //放大100倍
tcx[37] = Convert.ToDouble(COM1db["tc38"]) * (double)100.0; //放大100倍
tcx[38] = Convert.ToDouble(COM1db["tc39"]) * (double)100.0; //放大100倍
tcx[39] = Convert.ToDouble(COM1db["tc40"]) * (double)100.0; //放大100倍
for (int i=0;i<40;i++)
com1_tc_buffer[i] = (int)tcx[i];
}
COMconn.Close();
//COM2
COMconn.Open();
string COM2_Find_Str = device_info[1] + "02";
string COM2sql = "select * from table1 where id = '" + COM2_Find_Str + "'";
MySqlCommand COM2Cmd = new MySqlCommand(COM2sql, COMconn);
MySqlDataReader COM2db = COM2Cmd.ExecuteReader();
if (COM2db.Read())
{
parameters_buffer[6] = Convert.ToInt32(COM2db["temp_n"]);
parameters_buffer[7] = Convert.ToInt32(COM2db["press_n"]);
cableid_com_name[1] = COM2db["id"].ToString();
tcx[0] = Convert.ToDouble(COM2db["tc1"]) * (double)100.0; //放大100倍
tcx[1] = Convert.ToDouble(COM2db["tc2"]) * (double)100.0; //放大100倍
tcx[2] = Convert.ToDouble(COM2db["tc3"]) * (double)100.0; //放大100倍
tcx[3] = Convert.ToDouble(COM2db["tc4"]) * (double)100.0; //放大100倍
tcx[4] = Convert.ToDouble(COM2db["tc5"]) * (double)100.0; //放大100倍
tcx[5] = Convert.ToDouble(COM2db["tc6"]) * (double)100.0; //放大100倍
tcx[6] = Convert.ToDouble(COM2db["tc7"]) * (double)100.0; //放大100倍
tcx[7] = Convert.ToDouble(COM2db["tc8"]) * (double)100.0; //放大100倍
tcx[8] = Convert.ToDouble(COM2db["tc9"]) * (double)100.0; //放大100倍
tcx[9] = Convert.ToDouble(COM2db["tc10"]) * (double)100.0; //放大100倍
tcx[10] = Convert.ToDouble(COM2db["tc11"]) * (double)100.0; //放大100倍
tcx[11] = Convert.ToDouble(COM2db["tc12"]) * (double)100.0; //放大100倍
tcx[12] = Convert.ToDouble(COM2db["tc13"]) * (double)100.0; //放大100倍
tcx[13] = Convert.ToDouble(COM2db["tc14"]) * (double)100.0; //放大100倍
tcx[14] = Convert.ToDouble(COM2db["tc15"]) * (double)100.0; //放大100倍
tcx[15] = Convert.ToDouble(COM2db["tc16"]) * (double)100.0; //放大100倍
tcx[16] = Convert.ToDouble(COM2db["tc17"]) * (double)100.0; //放大100倍
tcx[17] = Convert.ToDouble(COM2db["tc18"]) * (double)100.0; //放大100倍
tcx[18] = Convert.ToDouble(COM2db["tc19"]) * (double)100.0; //放大100倍
tcx[19] = Convert.ToDouble(COM2db["tc20"]) * (double)100.0; //放大100倍
tcx[20] = Convert.ToDouble(COM2db["tc21"]) * (double)100.0; //放大100倍
tcx[21] = Convert.ToDouble(COM2db["tc22"]) * (double)100.0; //放大100倍
tcx[22] = Convert.ToDouble(COM2db["tc23"]) * (double)100.0; //放大100倍
tcx[23] = Convert.ToDouble(COM2db["tc24"]) * (double)100.0; //放大100倍
tcx[24] = Convert.ToDouble(COM2db["tc25"]) * (double)100.0; //放大100倍
tcx[25] = Convert.ToDouble(COM2db["tc26"]) * (double)100.0; //放大100倍
tcx[26] = Convert.ToDouble(COM2db["tc27"]) * (double)100.0; //放大100倍
tcx[27] = Convert.ToDouble(COM2db["tc28"]) * (double)100.0; //放大100倍
tcx[28] = Convert.ToDouble(COM2db["tc29"]) * (double)100.0; //放大100倍
tcx[29] = Convert.ToDouble(COM2db["tc30"]) * (double)100.0; //放大100倍
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/269776.html
標籤:C#
