//根据表名的到该表字段名 private void listBox_Field_Init(string TableName) { PublicBD.Path = System.Windows.Forms.Application.StartupPath + "/Resave/System.xml"; PublicBD.DB = "MSSQL"; PublicBD.ReInit(); _51Data dt = PublicBD.db.dt as _51Data; DataTable datatable = dt.Select("SysColumns", new string [] { "Name" }, "Where id=Object_Id('" + TableName + "')"); if (datatable != null && datatable.Rows.Count > 0) { for (int i = 0; i < datatable.Rows.Count; i++) { listBox_Field.Items.Add(datatable.Rows[i][0]); } } }
//测试成功,表List初始化 private bool listBox_Table_Init() { listBox_Table.Items.Clear(); PublicBD.Path = System.Windows.Forms.Application.StartupPath + "/Resave/System.xml"; PublicBD.DB = "MSSQL"; PublicBD.ReInit(); _51Data dt = PublicBD.db.dt as _51Data; DataTable datatable = dt.Select("sys.indexes a , sys.objects b , sys.dm_db_partition_stats c", new string [] { "b.name as tablename ,c.row_count as datacount" }, "where a.[object_id] = b.[object_id] AND b.[object_id] = c.[object_id] AND a.index_id = c.index_id AND a.index_id < 2 AND b.is_ms_shipped = 0"); if (datatable != null && datatable.Rows.Count > 0) { for (int i = 0; i < datatable.Rows.Count; i++) { listBox_Table.Items.Add(datatable.Rows[i][0].ToString()); } return(true); } else { return(false); } }
private void MainForm_Load(object sender, EventArgs e) { PubObject.PubObjectInit(imageList2); IList <Service.Model.YY_RTU_Basic> rtus = null; ExecCommandList.LC = new List <Command>(); ExecServiceList.Lsm = Program.wrx.XMLObj.LsM; //读取服务信息 buttonItem1.Text += "[" + ProName + "]"; AddControls(); //根据xml文件动态添加服务显示灯控件 TcpControl.TcpClient_Init(); //tcp与服务交互初始化 PublicBD.Path = Program.xmlpath; PublicBD.ReInit(); //连接数据库 if (PublicBD.ConnectState) { //得到RTU列表 rtus = Service.PublicBD.db.GetRTUList(""); //得到命令列表 ExecCommandList.Commands = Service.PublicBD.db.GetRTUCommandList(); //得到命令临时表中的要发送的召测命令 ExecRTUList.SetLrdm(rtus); //提示可能是自动入库的测站信息 AlertFomrShow(rtus); //显示数据窗体控件 buttonItem_dataShow_Click(null, null); } else { //显示系统设置窗体控件 buttonItem_SetSystem_Click(null, null); } ////根据服务在线状态更新服务显示灯 Thread updcontrols = new Thread(new ThreadStart(ThreadUpdControls)); // 设置为背景线程,主线程一旦退出,该线程也不等待而立即结束 updcontrols.IsBackground = true; updcontrols.Start(); //添加明文数据 Thread adddata = new Thread(new ThreadStart(ThreadAddData)); // 设置为背景线程,主线程一旦退出,该线程也不等待而立即结束 adddata.IsBackground = true; adddata.Start(); Thread ReConnect = new Thread(new ThreadStart(ThreadReConnect)); ReConnect.IsBackground = true; ReConnect.Start(); }
private void DBtoDB() { #region 读取转存字段配置信息 List <DataResaveClass> list = xmlToList <DataResaveClass>(ReadFieldToFieldXML()); List <string> tables = new List <string>(); foreach (var item in list) { tables.Add(item.TableName); } tables = tables.Distinct().ToList(); #endregion List <string> fields; List <object> values; List <object> values_1; string whereAnd = ""; foreach (var table in tables) { var l = from L in list where table == L.TableName select L; fields = new List <string>(); values = new List <object>(); values_1 = new List <object>(); foreach (var item in l) { fields.Add(item.NewField); if (item.OldField == "元 素" || item.OldField == "其 他") { values.Add(item.Value); values_1.Add(item.Value); bool b = true; if (item.OldField == "元 素") { if (b) { whereAnd += " and ItemID='" + item.Value + "'"; b = false; } else { whereAnd += " or ItemID='" + item.Value + "'"; } } } else if (item.OldField == "站 号") { values.Add("[0]"); values_1.Add("[0]"); } else if (item.OldField == "监测时间") { values.Add("[1]"); values_1.Add("[1]"); } else if (item.OldField == "接收时间") { values.Add("[2]"); values_1.Add("[2]"); } else if (item.OldField == "值") { values.Add("[3]"); values_1.Add("[3]"); } } #region 读取原始数据库中的数据 string datetime = ReadDateTimeXML(); datetime = DateTime.Parse(datetime).AddSeconds(-60).ToString("yyyy-MM-dd HH:mm:ss"); PublicBD.Path = System.Windows.Forms.Application.StartupPath + "/System.xml"; PublicBD.DB = "MSSQL"; PublicBD.ReInit(); _51Data dt = PublicBD.db.dt as _51Data; DataTable datatable = dt.Select("YY_DATA_AUTO", new string[] { "*" }, "where DOWNDATE>='" + datetime + "'" + whereAnd); #endregion if (datatable != null && datatable.Rows.Count > 0) { for (int i = 0; i < datatable.Rows.Count; i++) { for (int j = 0; j < values.Count; j++) { if (values_1[j].ToString() == "[0]") { values[j] = datatable.Rows[i]["STCD"].ToString(); } else if (values_1[j].ToString() == "[1]") { values[j] = datatable.Rows[i]["TM"].ToString(); } else if (values_1[j].ToString() == "[2]") { values[j] = datatable.Rows[i]["DOWNDATE"].ToString(); } else if (values_1[j].ToString() == "[3]") { values[j] = datatable.Rows[i]["DATAVALUE"].ToString(); } } //写入转存库,并记录成功失败数量 PublicBD.Path = System.Windows.Forms.Application.StartupPath + "/Resave/System.xml"; PublicBD.DB = "MSSQL"; PublicBD.ReInit(); _51Data newdt = PublicBD.db.dt as _51Data; int B = newdt.Insert_1(table, fields.ToArray(), values.ToArray()); if (B == 1) { Success++; } else if (B == 2) { Key++; } else { Failure++; } } } } }