using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using System.Data.OleDb; namespace CNAS_DBSync { public class BaseDAL { private static log4net.ILog log = log4net.LogManager.GetLogger("BaseDAL"); public void CreateConnectString(string strHost, string strName, string strUser, string strPwd) { SQLDB2Helper.createConnectString(strHost, strName, strUser, strPwd); } //获取所有表单名称 public DataTable GetTableNames(string strUser) { DataTable dt = new DataTable(); string strSql = string.Format("SELECT TABNAME FROM SYSCAT.TABLES Where TABSCHEMA = '{0}'",strUser); try { dt= SQLDB2Helper.getDB2Table(strSql); } catch (Exception ex) { log.Error(ex.Message); } return dt; } /// /// 获取某表的表结构 /// /// /// public DataTable GetTableStruct(string strTableName) { DataTable dt = new DataTable(); string strSql = string.Format("SELECT * FROM {0} Where 1=0", strTableName); try { dt = SQLDB2Helper.getDB2Table(strSql); } catch (Exception ex) { log.Error(ex.Message); } return dt; } /// /// 逐行批量插入数据 /// /// /// public int InsertCnasData(DataTable dt, List syncParamasInfos) { int iReturn = 0; if (dt.Rows.Count <= 0) return 0; try { //构建SQL语句 string strSql_part1 = ""; string strSql_part2 = ""; foreach (var item in syncParamasInfos) { strSql_part1 += item.TargetField + ","; strSql_part2 += "?,"; } string strSql = string.Format("insert into {0}({1}) values({2})",syncParamasInfos[0].TargetTable, strSql_part1.Substring(0, strSql_part1.Length - 1), strSql_part2.Substring(0, strSql_part2.Length - 1)); foreach (DataRow dr in dt.Rows) { OleDbParameter[] parameters = new OleDbParameter[syncParamasInfos.Count]; for (int i = 0; i < syncParamasInfos.Count; i++) { parameters[i] = new OleDbParameter(syncParamasInfos[i].TargetField, dr[syncParamasInfos[i].TargetField]); } //执行SQL语句 iReturn += SQLDB2Helper.ExequeryDB2Table(strSql, parameters); } } catch (Exception ex) { //此处添加错误日志 log.Error(ex.Message); } return iReturn; } public bool LinkCnasTest() { return SQLDB2Helper.TestCnasLink(); } } }