GZFramwork数据库层《一》普通表增删改查
运行结果:


使用代码生成器(GZCodeGenerate)生成tb_MyUser的Model
生成器源代码下载地址:
https://github.com/GarsonZhang/GZCodeGenerate/

生成代码:
放在GZFramworkDB.Model项目下:

代码:
using GZFramwork.ORM;
using System.Data; namespace GZFramworkDB.Model
{
///<summary>
/// ORM模型, 数据表:tb_MyUser
/// 来自:GarsonZhang
/// </summary>
[ORM_ObjectClassAttribute("tb_MyUser", "Account", "Account")]
public sealed class tb_MyUser
{
public static string _TableName = "tb_MyUser"; public static string _KeyName = "Account"; /// <summary>
/// 自增列
/// </summary>
[ORM_FieldAttribute(SqlDbType.Int, 4, false, false)]
public static string isid = "isid"; /// <summary>
/// 用户账号
/// </summary>
[ORM_FieldAttribute(SqlDbType.VarChar, 20, true, true)]
public static string Account = "Account"; /// <summary>
/// 用户名称
/// </summary>
[ORM_FieldAttribute(SqlDbType.VarChar, 20, true, false)]
public static string UserName = "UserName"; /// <summary>
/// 昵称
/// </summary>
[ORM_FieldAttribute(SqlDbType.VarChar, 20, true, false)]
public static string PetName = "PetName"; /// <summary>
/// 创建人
/// </summary>
[ORM_FieldAttribute(SqlDbType.VarChar, 20, true, false)]
public static string CreateUser = "CreateUser"; /// <summary>
/// 创建日期
/// </summary>
[ORM_FieldAttribute(SqlDbType.DateTime, 8, true, false)]
public static string CreateDate = "CreateDate"; /// <summary>
/// 修改人
/// </summary>
[ORM_FieldAttribute(SqlDbType.VarChar, 20, true, false)]
public static string LastUpdateUser = "LastUpdateUser"; /// <summary>
/// 修改日期
/// </summary>
[ORM_FieldAttribute(SqlDbType.DateTime, 8, true, false)]
public static string LastUpdateDate = "LastUpdateDate"; } public class _ORM_Export_tb_MyUser : ModelExport
{
public _ORM_Export_tb_MyUser()
{
typeModel = typeof(tb_MyUser);
}
}
}
设计Main项目主界面:

添加一个接口:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace GZFramworkDB.Main.MyControls
{
public interface IData
{
void DoSearch();
void DoAdd();
void DoDeleteKey();
void DoDeleteTable();
void DoUpdate();
}
}
新增自定义控件:ucTableUnit
界面:

代码:
public partial class ucTableUnit : UserControl,IData
{
bllBusiness bll;
public ucTableUnit()
{
InitializeComponent();
bll = new bllBusiness(typeof(tb_MyUser));
} public void DoSearch()
{
gridControl1.DataSource = bll.GetSummaryData();
gridView1.BestFitColumns();//自动列宽
} DataTable dtSource
{
get
{
if (gridControl1.DataSource == null) return null;
return gridControl1.DataSource as DataTable;
}
}
//新增
public void DoAdd()
{
if (dtSource != null)
dtSource.Rows.Add();
}
//主键删除,立即删除,无需提交
public void DoDeleteKey()
{
DataRow dr = gridView1.GetFocusedDataRow();
if (dr != null)
{
string Keyvalue = dr[bll.SummaryKey].ToString();
if (bll.Delete(Keyvalue) == true)
{
dtSource.Rows.Remove(dr);
}
}
}
//缓存表删除,需要提交生效
public void DoDeleteTable()
{
gridView1.DeleteSelectedRows();
}
//提交
public void DoUpdate()
{
bll.Update(dtSource);
}
}
说明:
bllBusiness bll = new bllBusiness(typeof(tb_MyUser));
/// <summary>
///
/// </summary>
/// <param name="ORM_Main">主表ORM</param>
/// <param name="DocCode">如果是单据,这里是单据标示</param>
/// <param name="Length">单据长度</param>
/// <param name="ORM_Details">明细表ORM</param>
public bllBusiness(Type ORM_Main, string DocCode, int Length, params Type[] ORM_Details)
{
_DAL = new GZFramwork.Lib.GZdalBaseBusiness(ORM_Main, DocCode, Length, ORM_Details);
}
/// <summary>
///
/// </summary>
/// <param name="ORM_Main">主表ORM</param>
/// <param name="ORM_Details">明细表ORM</param>
public bllBusiness(Type ORM_Main, params Type[] ORM_Details)
{
_DAL = new GZFramwork.Lib.GZdalBaseBusiness(ORM_Main, null, 0, ORM_Details);
}
补充完整frmMain.cs代码:
using GZFramworkDB.Main.MyControls;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; namespace GZFramworkDB.Main
{
public partial class frmMain : Form
{
ucTableUnit TableUnit;//普通表操作 IData uc;
public frmMain()
{
InitializeComponent();
TableUnit = new ucTableUnit() { Visible = false };
pan_MyControls.Controls.Add(TableUnit);
}
private void menu_TableUnit_Click(object sender, EventArgs e)
{
foreach (Control col in pan_MyControls.Controls)
{
col.Visible = false;
}
TableUnit.Visible = true;
uc = TableUnit;
}
#region 操作
private void btn_Search_Click(object sender, EventArgs e)
{
if (uc != null)
uc.DoSearch();
}
private void btn_Add_Click(object sender, EventArgs e)
{
if (uc != null)
{
uc.DoAdd();
}
}
private void btn_DeleteKey_Click(object sender, EventArgs e)
{
if (uc != null)
{
uc.DoDeleteKey();
MessageBox.Show("删除成功!", "信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
private void btn_DeleteTable_Click(object sender, EventArgs e)
{
if (uc != null)
{
uc.DoDeleteTable();
MessageBox.Show("已经在缓存中删除行!\r\n提交后生效", "信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
private void btn_Update_Click(object sender, EventArgs e)
{
if (uc != null)
{
uc.DoUpdate();
MessageBox.Show("提交成功!", "信息", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
#endregion
}
}
运行结果:

说明:
删除(主键)直接从数据库中删除数据
删除(缓存表)仅仅是删除了datatable,数据库中并没有删除,当点击提交后才会删除数据库
本系列项目源码下载地址:https://github.com/GarsonZhang/GZFramworkDBDemo/
生成器源码下载地址:https://github.com/GarsonZhang/GZCodeGenerate/
系列文章
4. GZFramwork数据库层《二》单据表增删改查(自动生成单据号码)
6. GZFramwork数据库层《四》单据主从表增删改查(主键自动生成)
7. GZFramwork数据库层《五》高级主从表增删改查(主表明细表主键都自动生成)
8. GZFramwork数据库层《六》存储过程调用
9. GZFramwork数据库层《七》总结
GZFramwork数据库层《一》普通表增删改查的更多相关文章
- GZFramwork数据库层《四》单据主从表增删改查
同GZFramwork数据库层<三>普通主从表增删改查 不同之处在于:实例 修改为: 直接上效果: 本系列项目源码下载地址:https://github.com/GarsonZhang/G ...
- GZFramwork数据库层《三》普通主从表增删改查
运行结果: 使用代码生成器(GZCodeGenerate)生成tb_Cusomer和tb_CusomerDetail的Model 生成器源代码下载地址: https://github.com/Gars ...
- GZFramwork数据库层《二》单据表增删改查(自动生成单据号码)
运行效果: 使用代码生成器(GZCodeGenerate)生成tb_EmpLeave的Model 生成器源代码下载地址: https://github.com/GarsonZhang/GZCodeGe ...
- Vc数据库编程基础MySql数据库的表增删改查数据
Vc数据库编程基础MySql数据库的表增删改查数据 一丶表操作命令 1.查看表中所有数据 select * from 表名 2.为表中所有的字段添加数据 insert into 表名( 字段1,字段2 ...
- Django框架之第二篇--app注册、静态文件配置、form表单提交、pycharm连接数据库、django使用mysql数据库、表字段的增删改查、表数据的增删改查
本节知识点大致为:静态文件配置.form表单提交数据后端如何获取.request方法.pycharm连接数据库,django使用mysql数据库.表字段的增删改查.表数据的增删改查 一.创建app,创 ...
- [Django框架 - 静态文件配置、request对象方法初识、 pycharm链接数据库、ORM实操增删改查、django请求生命周期]
[Django框架 - 静态文件配置.request对象方法初识. pycharm链接数据库.ORM实操增删改查.django请求生命周期] 我们将html文件默认都放在templates文件夹下 将 ...
- 用CI框架向数据库中实现简单的增删改查
以下代码基于CodeIgniter_2.1.3版 用PHP向数据库中实现简单的增删改查(纯代码)请戳 http://www.cnblogs.com/corvoh/p/4641476.html Code ...
- SSH框架下的多表增删改查
下载地址:SSH框架下的多表增删改查 点击进入码云Git下载 点击进入CSDN下载 项目结构: 项目代码就不全部贴出来了,只贴下核心代码.需要项目的自己可以去下载. package com.atgui ...
- Django框架(八)--单表增删改查,在Python脚本中调用Django环境
一.数据库连接配置 如果连接的是pycharm默认的Sqlite,不用改动,使用默认配置即可 如果连接mysql,需要在配置文件中的setting中进行配置: 将DATABASES={} 更新为 DA ...
随机推荐
- JSP-08-第三方控件的使用
添加图片 下载 commons-fileupload-1.2.2.jar和commons-io-2.4.jar 导入项目 在添加涂抹的页面设置表单属性 enctype=”multipart/form ...
- 关于linux的systemd的一些事
1. 输出运行失败的单元: systemctl --failed 2. 所有的单元文件存放在 /usr/lib/systemd/system/ 和 /etc/systemd/system/ 这两个目录 ...
- 在 linux 中利用samba访问windows的共享
只是介绍一些最基本的应用吧, 有些命令可能要求输入用户的密码 1. 首先要安装 samba 这个套件, 若只是访问windows中的共享的话, 可以只装 samba-client 就好了. 2. 在第 ...
- 新发现了一个编辑器HBuilder,感觉蛮好的,关键是国产软件。
http://www.dcloud.io/
- android 学习随笔八(异常处理总结)
1.在android 中开发java.net.SocketException: socket failed: EACCES (Permission denied) 报错 第一反应就是缺少网络权限,然后 ...
- TI BLE CC2541的通讯协议.
包类型: 01命令/02数据/03应答消息 开始标志FF/本数据包长度(注意是16进制)/校验码/包ID/包类型01: 表示是命令/01表示下面要开始传输/03字符串编号/字符串长度/结束位FEFF ...
- Dijkstra 算法、Kruskal 算法、Prim算法、floyd算法
1.dijkstra算法 算最短路径的,算法解决的是有向图中单个源点到其他顶点的最短路径问题. 初始化n*n的数组. 2.kruskal算法 算最小生成树的,按权值加入 3.Prim算法 类似dijk ...
- 【Pro ASP.NET MVC 3 Framework】.学习笔记.11.ASP.NET MVC3的细节:概览MVC项目
书Adam The Definitive Guide to HTML5 Adam Applied ASP.NET 4 in Context and Pro ASP.NET 4 到此为止,我们已经学了为 ...
- 错误代码:ERR_UNSAFE_PORT
修改下应用的端口为7788就好了:http://localhost:7788/taiping-sol-insu-vehicle/vehicleEntrance.action. 这个主要是chrome的 ...
- Hibernate,JPA注解@OneToMany_Set
用例代码如下: 数据库DDL语句 1,CAT表 create table CAT ( id CHAR) not null, create_time ), update_time ), cat_name ...