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,数据库中并没有删除,当点击提交后才会删除数据库

时间: 2024-08-09 10:41:47

GZFramwork数据库层《一》普通表增删改查的相关文章

GZFramwork数据库层《二》单据表增删改查(自动生成单据号码)

运行效果: 使用代码生成器(GZCodeGenerate)生成tb_EmpLeave的Model 生成器源代码下载地址: https://github.com/GarsonZhang/GZCodeGenerate/ 生成方式见上一节: GZFramwork数据库层<一>普通表增删改查     新增一个自定义控件:ucTableUnitDocNo   后台代码同上一节ucTableUnit除了实例化bllBusiness不一样外其他都一样(红色背景标注) using System; using

GZFramwork数据库层《四》单据主从表增删改查

同GZFramwork数据库层<三>普通主从表增删改查   不同之处在于:实例 修改为:   直接上效果:         本系列项目源码下载地址:https://github.com/GarsonZhang/GZFramworkDBDemo/ 生成器源码下载地址:https://github.com/GarsonZhang/GZCodeGenerate/   系列文章 1. GZFramwork数据库层<前言>Demo简介 2. GZFramwork数据库层<前言>D

GZFramwork数据库层《三》普通主从表增删改查

运行结果: 使用代码生成器(GZCodeGenerate)生成tb_Cusomer和tb_CusomerDetail的Model 生成器源代码下载地址: https://github.com/GarsonZhang/GZCodeGenerate/ 生成方式见第一节: GZFramwork数据库层<一>普通表增删改查   生成明细表ORM略有不同: 项目附加结果:   新增一个自定义控件:ucTableMD 界面:   后台代码: using System; using System.Colle

mybatis(单表增删改查)

(mybatis注意各个文件的映射问题) 用到的t_user数据库脚本: -- 导出 mybatis 的数据库结构 CREATE DATABASE IF NOT EXISTS `mybatis` /*!40100 DEFAULT CHARACTER SET utf8 */; USE `mybatis`; -- 导出 表 mybatis.t_user 结构 CREATE TABLE IF NOT EXISTS `t_user` ( `id` int(10) NOT NULL AUTO_INCREM

用CI框架向数据库中实现简单的增删改查

以下代码基于CodeIgniter_2.1.3版 用PHP向数据库中实现简单的增删改查(纯代码)请戳 http://www.cnblogs.com/corvoh/p/4641476.html CodeIgniter_2.1.3与PHP5.6的兼容问题请戳 http://www.cnblogs.com/corvoh/p/4649357.html 增: //insert//语法:$bool=$this->db->insert('表名',关联数组); $data=array( 'username'=

mybatis(单表增删改查useMapper版)

数据库脚本(注意测试时先add-->load-->update-->delete-->list)UserMapper版 -- -------------------------------------------------------- -- 主机: 127.0.0.1 -- 服务器版本: 5.5.36-MariaDB - mariadb.org binary distribution -- 服务器操作系统: Win32 -- HeidiSQL 版本: 8.0.0.4396 --

Android通讯录数据库介绍与基本操作(增删改查)

Android通讯录数据库介绍与基本操作(增删改查) 2014年2月21日 Android通讯录管理总结 这几天导师安排我一个任务就是研究一下Android通讯录获取联系人.通话记录.短信的方法,还有看看不同Android版本之间的异同是否能做到兼容之类的事情.Android通讯录这一块,我个人感觉是挺乱的,网上一堆关于查询本地数据库获取联系人的方法,但似乎都没有仔细说明数据有哪些重要的表,它们之间有什么联系.下面是本人查询资料总结的一下知识点,方便童鞋们以后用到. http://xys2891

使用CI操作oracle 10g的单表增删改查

<?php if (!defined('BASEPATH'))    exit('No direct script access allowed'); class UseOra extends CI_Controller{ public function index()    {        echo '欢迎使用测试CI使用Oracle 10g 的功能,您可以在地址栏中使用如下的函数参数:<br>';        echo '=============================

再说“使用CI操作oracle 10g的单表增删改查”

--Control中的UseOra.php <?php if (!defined('BASEPATH'))    exit('No direct script access allowed'); class UseOra extends CI_Controller{ public function index()    {        echo '欢迎使用测试CI使用Oracle 10g 的功能,您可以在地址栏中使用如下的函数参数:<br>';        echo '=======

用PHP向数据库中实现简单的增删改查(纯代码,待完善)

<?php $con = mysql_connect("localhost:3306","root",""); if (!$con) { die('Could not connect: ' . mysql_error()); } mysql_select_db("test", $con); $result = mysql_query("SELECT * FROM user"); echo "