文章目录
GridControl列表动态赋值
内容有点多,全是干货,仔细阅读
1. 赋值Query查询条件
//1. 赋值Query查询条件,获取前端页面属性值,赋值到model中 private Element.病理列表Query 病理_列表_赋值() { Element.病理列表Query query = new Element.病理列表Query(); if (CheckBox_日期选择.Checked) { if (labeledCombox_日期类型.EditValue != null) { query.日期类型 = labeledCombox_日期类型.EditValue.ToString(); } if (labeledDateTime_接收开始时间.EditValue != null) { query.接收开始时间 = labeledDateTime_接收开始时间.EditValue.ToString(); } if (labeledDateTime_接收结束时间.EditValue != null) { query.接收接收时间 = labeledDateTime_接收结束时间.EditValue.ToString(); } } else { if (labeledCombox_日期类型.EditValue != null) { query.日期类型 = labeledCombox_日期类型.EditValue.ToString(); } if (labeledDateTime_接收开始时间.EditValue != null) { query.接收开始时间 = labeledDateTime_接收开始时间.EditValue.ToString(); } if (labeledDateTime_接收结束时间.EditValue != null) { query.接收接收时间 = labeledDateTime_接收结束时间.EditValue.ToString(); } if (labeledCombox_标识类型.EditValue != null) { query.标识类型 = labeledCombox_标识类型.EditValue.ToString(); } if (labeledCombox_状态.EditValue != null) { query.状态 = 0; if (labeledCombox_状态.EditValue.ToString() == "登") { query.状态 = 1; } } } return query; }
2. 调用赋值方法
//2. 调用赋值方法,将值保存到model中 Element.病理列表Query query = 病理_列表_赋值();
3. 调用数据库查询类
//3. 调用数据库查询类 //Data.病理列表_Class obj = new Data.病理列表_Class(); //声明list集合接收在数据库中查询到的数据 //query 是查询条件 List<Element.病理列表Data> modelList = 病理列表Query(query);
4. 操作数据库
//4. 操作数据库 public System.Collections.Generic.List<Element.病理列表Data> 病理列表Query(Element.病理列表Query query) { //(1)验证查询条件 if (query == null) { throw new Exception("查询条件为空,无法执行查询!"); } //这里是采用读取SQL语句的方式及拼接SQL语句的方式 string sqlstr = File.ReadAllText(Environment.CurrentDirectory + @"\SQLFile\PathologyDataFile\病理列表Query.sql"); //判断选择的类型,添加查询条件 if (query.日期类型 == "接收日期") { if (query.接收开始时间 != null && query.接收接收时间 != null) { sqlstr += @" and 接收日期 between '" + query.接收开始时间 + "' and '" + query.接收接收时间 + "'"; } } sqlstr += @" order by Id desc";//最后来排个序 //数据库连接数据,采用读取配置文件方式,利于维护、已更改 string sqlstrIni = Environment.CurrentDirectory + @"\SQLFile\PathologyDataFile\病理列表Query.ini"; //赋值数据库 string conString = Common.DbHelperSQL.ConnectionStringOfIni(sqlstrIni, "Pathology"); //执行SQL语句 DataSet ds = Common.DbHelperSQL.ExecuteQuerySql(sqlstr, conString); int rowsCount = ds.Tables[0].Rows.Count; if (rowsCount <= 0) { return null; } //(4)渲染/返回数据 从数据中读取到的数据进行渲染 System.Collections.Generic.List<Element.病理列表Data> modelList = new System.Collections.Generic.List<Element.病理列表Data>(); if (rowsCount > 0) { for (int n = 0; n < rowsCount; n++) { Element.病理列表Data model = 病理列表Data_DataRowToModel(ds.Tables[0].Rows[n]); if (model != null) { modelList.Add(model); } } } return modelList; }
5. 将数据库中数据转换到model
//5. 将数据库中数据转换到model //此处只赋值了几列,相当于举个例子,其他的也是一样操作 private Element.病理列表Data 病理列表Data_DataRowToModel(DataRow dataRow) { Element.病理列表Data model = new Element.病理列表Data(); if (dataRow != null) { if (dataRow["Id"] != null) { model.Id = (int)dataRow["Id"]; } if (dataRow["病理号"] != null) { model.病理号 = dataRow["病理号"].ToString(); } else { model.病理号 = ""; } } return model; }
6. model赋值GridControl列表
//6. 是将model数据赋值到前端GridControl列表中 gridControl_病理列表.DataSource = modelList; if (modelList == null) { //GroupPanelText属性 计算列表总条数 this.gridView_病理列表.GroupPanelText = "核对合计:" + 0; } else { this.gridView_病理列表.GroupPanelText = "核对合计:" + modelList.Count; }
7. 解答
//实体类,保存查询条件 public class 病理列表Query { public string 日期类型 { get; set; } public string 标识类型 { get; set; } public string 接收开始时间 { get; set; } public string 接收接收时间 { get; set; } public string 标识值 { get; set; } public int 状态 { get; set; } }
//实体类,与列表的列相对应 /*对应的SQL语句(大概) SELECT Id AS 'Id', 病理号 AS '病理号', 姓名 AS '姓名', 性别 AS '性别', 年龄 AS '年龄', 门诊号 AS '门诊号', from AA*/ public class 病理列表Data { public int Id { get; set; } public string 病理号 { get; set; } public string 姓名 { get; set; } public string 性别 { get; set; } }
//Environment.CurrentDirectory获取当前项目当前输出路径下的地址 string sqlstr = File.ReadAllText(Environment.CurrentDirectory + @"\SQLFile\PathologyDataFile\病理列表Query.sql");
//下面这三行是读取ini配置文件,已经调用执行SQL语句方法 string sqlstrIni = Environment.CurrentDirectory + @"\SQLFile\PathologyDataFile\Config.ini"; //ini文件内容 数据库名是由Pathology传过来的,匹配对应的数据库名称 [DataBase] Name=数据库名 [DataBaseConnectionString] PQCS_JNSY=Server=服务器地址;Database=数据库名;uid=用户名;password=密码;
//赋值数据库 string conString = Common.DbHelperSQL.ConnectionStringOfIni(sqlstrIni, "Pathology"); //ConnectionStringOfIni public static string ConnectionStringOfIni(string iniPath,string Name) { Common.Logs.SaveLog("C://AppExe", "HPV扫码接收日志", "1.3 配置文件Name" + Name); //将数据库连接字符配置到当前目录下“.ini”配置文件内; Ini ini = new Ini(iniPath); string connectiongStr= ini.ReadValue("DataBaseConnectionString", Name); if (!string.IsNullOrEmpty(connectiongStr)) { return connectiongStr; } else { return ConnectionString(); } }
//执行SQL语句 DataSet ds = Common.DbHelperSQL.ExecuteQuerySql(sqlstr, conString); //这个方法是SQL语句执行查询方法 ExecuteQuerySql //DataAdapter:输出默认表名ds数据DataSet public static DataSet ExecuteQuerySql(string SqlStr, string conString) { try { using (SqlConnection connection = new SqlConnection(conString)) { DataSet ds = new DataSet(); connection.Open(); SqlDataAdapter query = new SqlDataAdapter(SqlStr, connection); query.Fill(ds, "ds");//“ds”可以参数化为表名称; return ds; } } catch (Exception err) { throw new Exception(err.ToString()); } }