/// <summary> /// 用value的值进行查询 /// </summary> /// <param name="database">数据库连接用的类,陈剑楠定义</param> /// <param name="tableName">表格名</param> /// <param name="mappingListLimit">规定Luis返回的type和表头的对应关系,查询的限制条件</param> /// <param name="mappingListSelect">规定Luis返回的type和表头的对应关系,查询内容</param> /// <return>返回有查询的结果,查询结果与UseDatebase的类型一致</return> public List <string[]> QueryByValue(string ConnectString, string tableName, string[] typeForSelect, string[] typeForLimit) { string sql; List <string[]> result = new List <string[]>(); List <string> tempSelectStr = new List <string>(); List <string> tempFieldNameStr = new List <string>(); List <string> tempFieldValueStr = new List <string>(); //检索字典中,确定哪些type作为查询内容,哪些为查询条件 foreach (valueAndType item in valueAndTypeStr) { foreach (string itemOftypeForSelect in typeForSelect) { if (item.type == itemOftypeForSelect) { tempSelectStr.Add(item.value); } } foreach (string itemOftypeForLimit in typeForLimit) { if (item.type == itemOftypeForLimit) { tempFieldNameStr.Add(item.type); tempFieldValueStr.Add(item.value); } } } fieldName = new string[tempFieldNameStr.Count]; fieldValue = new string[tempFieldNameStr.Count]; selectField = new string[tempSelectStr.Count]; for (int i = 0; i < tempFieldNameStr.Count; i++) { fieldName[i] = tempFieldNameStr[i]; fieldValue[i] = tempFieldValueStr[i]; } for (int i = 0; i < tempSelectStr.Count; i++) { selectField[i] = tempSelectStr[i]; } //一直都是全部查询,即每个表头都查询,方便后续处理 sql = UseDatebase.GenerateQuery(tableName, fieldName, fieldValue, null); UseDatebase data = new UseDatebase(ConnectString); data.Query(sql); result = data.queryResul; if (data.queryResul.Count == 0) { result = null; } return(result); }
/// <summary> /// 按照txt中的表头,给对应数据库中的表插入数据。 /// </summary> /// <param name="tableName">数据库中表格的名称</param> /// <param name="url">数据文件位置</param> /// <param name="data">UseDatebase类</param> public static void ImportData(string tableName, string url, UseDatebase data) { string sql; string[] lines = System.IO.File.ReadAllLines(url); int ColumnNum = (Regex.Matches(lines[0], "\t")).Count; string[] subLines = new string[ColumnNum + 1];//定义用于存储行信息的变量,在循环中使用,中间变量 string[] fieldName = subLines = lines[0].Split(new char[] { '\t' }); for (int i = 1; i < lines.Length; i++) { subLines = lines[i].Split(new char[] { '\t' });//对第i行进行分割,得到sublines数组 sql = GenerateInsert(tableName, fieldName, subLines); data.InsertDate(sql); } //Console.WriteLine(ColumnNum.ToString()); }