C# GridControl列表动态赋值

简介: C# GridControl列表动态赋值

文章目录


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());
      }
  }

4edc953e2c684bbe819ffa954c899c08.png

目录
相关文章
|
2月前
|
Java 程序员 C#
【类的应用】C#应用之派生类构造方法给基类构造方法传参赋值
【类的应用】C#应用之派生类构造方法给基类构造方法传参赋值
15 0
|
6月前
|
C# 数据库
C#中的空合并运算符与空合并赋值运算符:简化空值处理
C#中的空合并运算符与空合并赋值运算符:简化空值处理
|
7月前
|
C#
C# gridControl 导出Excel
C# gridControl 导出Excel
|
7月前
|
C#
C# 运算符详解:包含算术、赋值、比较、逻辑运算符及 Math 类应用
运算符用于对变量和值执行操作。在C#中,有多种运算符可用,包括算术运算符、关系运算符、逻辑运算符等。
87 1
C#由Dictionary赋值引发的对引用类型使用的思考
C#由Dictionary赋值引发的对引用类型使用的思考
基于C#的ArcEngine二次开发51:获取图层字段唯一值列表(Get Unique Values)
基于C#的ArcEngine二次开发51:获取图层字段唯一值列表(Get Unique Values)
水C#dev中给LookUpEdit赋值
C#dev中给LookUpEdit赋值
126 0
|
前端开发 C#
C# 动态赋值CheckBox
C# 动态赋值CheckBox
167 0
C# 动态赋值CheckBox
|
C# 数据库
C# Button/SimpleButton (按钮) 动态赋值
C# Button/SimpleButton (按钮) 动态赋值
216 0
C# Button/SimpleButton (按钮) 动态赋值
|
C#
C# List集合赋值
list集合赋值(固定)
236 0