背景:
随着V5框架使用者的快速增加,终于促使我开始对整个框架编写完整的Demo。
上周大概花了一星期的时间,每天写到夜里3点半,终完成了框架所有功能的Demo。
同时,按V5框架名称空间的顺序,对每个类的使用,补充相应的文章介绍,以漏补缺。
以下开始介绍:
MAction Demo的项目文件:
1:项目解决方案:
2:两个文件在Debug目录里:
演示的是SQLite数据库(默认System.Data.SQLite.DLL是64位版本,如果运行提示加载出错,自己解压32位的复盖即可)
demo.db的数据库结构为:(后续的Demo也以此两表为示例)
3:App.Config文件配置的是数据库链接:
本类里面演示的是:单表、多表查询、多表操作,下面一个一个看:
单表操作:
1:界面:
2:代码:
1 public partial class 单表操作 : Form 2 { 3 string tableName = "Users"; 4 public 单表操作() 5 { 6 AppConfig.DB.EditTimeFields = "EditTime";//该配置的字段,在更新时会自动被更新时间。 7 InitializeComponent(); 8 Pager.OnPageChanged += Pager_OnPageChanged; 9 } 10 11 void Pager_OnPageChanged(object sender, EventArgs e) 12 { 13 LoadData(); 14 } 15 16 17 18 private void 单表操作_Load(object sender, EventArgs e) 19 { 20 LoadData(); 21 22 } 23 private void LoadData() 24 { 25 MDataTable dt; 26 using (MAction action = new MAction(tableName)) 27 { 28 dt = action.Select(Pager.PageIndex, Pager.PageSize, "order by " + action.Data.PrimaryCell.ColumnName + " desc"); 29 OutDebugSql(action.DebugInfo); 30 } 31 if (dt != null && dt.Rows.Count > 0) 32 { 33 if (txtUserID.Text == "") 34 { 35 dt.Rows[0].SetToAll(this); 36 } 37 } 38 // dgView.DataSource = dt.ToDataTable(); 39 // 40 dt.Bind(dgView); 41 Pager.DrawControl(dt.RecordsAffected); 42 } 43 44 private void OutDebugSql(string msg) 45 { 46 if (string.IsNullOrEmpty(msg)) 47 { 48 msg = "Auto Cache...";//相关的配置,如:AppConfig.Cache.IsAutoCache = false; 49 } 50 rtxtSql.Text = msg; 51 } 52 53 private void btnFill_Click(object sender, EventArgs e) 54 { 55 using (MAction action = new MAction(tableName)) 56 { 57 if (action.Fill(txtUserID)) 58 { 59 action.UI.SetToAll(