开发数据查询窗体 - MiniFramework蝇量框架 - Winform框架
开发数据查询窗体 - MiniFramework蝇量框架 - Winform框架
目录
前言
本教程将指导您快速开发一个数据查询窗体,返回实体对象列表作为表格的数据源。
查询结果返回的数据有两种数据格式:
- DataTable / DataSet,返回基于ADO.NET底层数据对象。
- List<T>,返回实体对象。
本教程将返回 List<T>实体对象。
界面开发
新增 Windows 窗体
在 FormsDemo 子目录下添加一个窗体:
开发查询条件和数据表格
从其他界面复制查询条件 Panel ,设置 Dock 属性为 Top,修改查询条件。
从其他界面复制表格组件,设置 Dock 属性为 Fill,修改表格的列。
新增实体模型 Model
在 Models 目录下新增实体类
tb_CustomerObject 类
C# 全选
/// <summary>
/// 客户实体模型
/// </summary>
[ORM_TableAttribute("tb_Customer", "CustomerCode", true)]
[ORM_ConcurrentAttribute("TS")]
public class tb_CustomerObject
{
[ORM_FieldAttribute(DbType.Int32, 4, false, false, false, false, false)]
public string ISID { get; set; }
[ORM_FieldAttribute(DbType.DateTime2, 8, false, false, false, false, false)]
public string TS { get; set; }
[ORM_FieldAttribute(DbType.String, 20, false, true, true, false, false)]
public string CustomerCode { get; set; }
[ORM_FieldAttribute(DbType.String, 200, false, true, false, false, false)]
public string NativeName { get; set; }
[ORM_FieldAttribute(DbType.String, 100, false, true, false, false, false)]
public string EnglishName { get; set; }
[ORM_FieldAttribute(DbType.String, 50, false, true, false, false, false)]
public string AttributeCodes { get; set; }
[ORM_FieldAttribute(DbType.String, 100, false, true, false, false, false)]
public string Address1 { get; set; }
[ORM_FieldAttribute(DbType.String, 100, false, true, false, false, false)]
public string Address2 { get; set; }
[ORM_FieldAttribute(DbType.String, 100, false, true, false, false, false)]
public string Address3 { get; set; }
[ORM_FieldAttribute(DbType.String, 40, false, true, false, false, false)]
public string Country { get; set; }
[ORM_FieldAttribute(DbType.String, 40, false, true, false, false, false)]
public string Region { get; set; }
[ORM_FieldAttribute(DbType.String, 40, false, true, false, false, false)]
public string City { get; set; }
[ORM_FieldAttribute(DbType.String, 12, false, true, false, false, false)]
public string CountryCode { get; set; }
[ORM_FieldAttribute(DbType.String, 6, false, true, false, false, false)]
public string CityCode { get; set; }
[ORM_FieldAttribute(DbType.String, 20, false, true, false, false, false)]
public string Tel { get; set; }
[ORM_FieldAttribute(DbType.String, 20, false, true, false, false, false)]
public string Fax { get; set; }
[ORM_FieldAttribute(DbType.String, 20, false, true, false, false, false)]
public string PostalCode { get; set; }
[ORM_FieldAttribute(DbType.String, 20, false, true, false, false, false)]
public string ZipCode { get; set; }
[ORM_FieldAttribute(DbType.String, 200, false, true, false, false, false)]
public string WebAddress { get; set; }
[ORM_FieldAttribute(DbType.String, 400, false, true, false, false, false)]
public string Email { get; set; }
[ORM_FieldAttribute(DbType.String, 40, false, true, false, false, false)]
public string Bank { get; set; }
[ORM_FieldAttribute(DbType.String, 50, false, true, false, false, false)]
public string BankAccount { get; set; }
[ORM_FieldAttribute(DbType.String, 100, false, true, false, false, false)]
public string BankAddress { get; set; }
[ORM_FieldAttribute(DbType.String, 40, false, true, false, false, false)]
public string ContactPerson { get; set; }
[ORM_FieldAttribute(DbType.String, 400, false, true, false, false, false)]
public string Remark { get; set; }
[ORM_FieldAttribute(DbType.String, 1, false, true, false, false, false)]
public string InUse { get; set; }
[ORM_FieldAttribute(DbType.Int32, 4, false, true, false, false, false)]
public string PaymentTerm { get; set; }
[ORM_FieldAttribute(DbType.DateTime, 8, false, true, false, false, false)]
public string CreationDate { get; set; }
[ORM_FieldAttribute(DbType.String, 50, false, true, false, false, false)]
public string CreatedBy { get; set; }
[ORM_FieldAttribute(DbType.DateTime, 8, false, true, false, false, false)]
public string LastUpdateDate { get; set; }
[ORM_FieldAttribute(DbType.String, 50, false, true, false, false, false)]
public string LastUpdatedBy { get; set; }
}
开发DAL层
在 dalCustomer 类添加一个方法
C# 全选
/// <summary>
/// 返回实体对象
/// </summary>
/// <param name="CustomerFrom"></param>
/// <param name="CustomerTo"></param>
/// <param name="Name"></param>
/// <param name="Attribute"></param>
/// <returns></returns>
public List<tb_CustomerObject> QueryList(string CustomerFrom, string CustomerTo, string Name, string Attribute)
{
CommandHelper sp = _Database.CreateSqlProc("usp_SearchCustomer");
sp.AddParam("CustomerFrom", CustomerFrom);
sp.AddParam("CustomerTo", CustomerTo);
sp.AddParam("CustomerName", Name);
sp.AddParam("Attribute", Attribute);
return _Database.ExecuteReaderList<tb_CustomerObject>(sp.Command);
}
参考:开发数据访问层DAL
https://www.cscode.net/archive/miniframework/255528223973381.html
查询按钮事件
C# 全选
private void btnQuery_Click(object sender, EventArgs e)
{
try
{
frmWaitingEx.ShowMe(this);
var list = _DAL.QueryList(txt_CustomerFrom.Text, txt_CustomerTo.Text, txt_Name.Text, ConvertEx.ToString(txt_Attr.EditValue));
gcSummary.DataSource = list;
}
finally
{
frmWaitingEx.HideMe(this);
}
}
获取表格当前记录的对象
C# 全选
private void gvSummary_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
{
if (e.FocusedRowHandle >= 0)
{
//获取当前记录的实体对象
var o = gvSummary.GetRow(e.FocusedRowHandle);
tb_CustomerObject obj = (tb_CustomerObject)o;
}
}
在模块主窗体添加功能按钮
操作步骤:模块主窗体添加功能按钮
https://www.cscode.net/archive/miniframework/257384738910213.html
【查询窗体】功能按钮
frmQueryCustomer 源码
C# 全选
public partial class frmQueryCustomer : frmBaseData
{
//数据访问层
dalCustomer _DAL = new dalCustomer(Loginer.Current);
public frmQueryCustomer()
{
InitializeComponent();
}
//略...
}
运行程序体验
重新编译VS,打开【查询窗体】,点【查询】按钮。
版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
MiniFramework C/S框架网