c# 反射封装SQL

本文介绍了使用C#封装SQL语句的基础实现,通过创建基类并让数据表实体类继承,可以简化增删改查操作。然而,该方法存在限制,如仅支持基于主键的更新,无法处理空值或复杂SQL(如JOIN)。
摘要由CSDN通过智能技术生成

自己写了一段程序,练习一下使用c#封装sql语句。

namespace Model
{
    using System.Reflection;
    using DAL;

    abstract public class DBModel
    {
        public DBModel()
        {
            _updateFiled = new List<string>();
            _valueFiled = new List<string>();
        }

        #region 更新
        virtual public int UpdateByKey()
        {
            string sql = GetUpdateByKeySql();
            return DBHelper.ExecuteNonQuery(sql);
        }

        // 获得更新的SQL语句
        private string GetUpdateByKeySql()
        {
            string updateSql = "UPDATE {0} SET {1} WHERE {2} = '{3}'";
            string keyFiled, keyValue;
            if (GetPrimaryKeyInfo(out keyFiled, out keyValue))
            {
                return string.Format(updateSql, _tbName, GetUpdateFieldAndValueString(), keyFiled, keyValue);
            }
            else
            {
                return "";
            }
        }

        /// <summary>
        /// 获得更新数据库的SQL字段和值
        /// </summary>
        /// <returns>更新数据库的部分字符串</returns>
        private string GetUpdateFieldAndValueString()
        {
            GetDbFieldAndValue();
            string strUpdateValue = "";
            for (int iLoop = 0; iLoop < _updateFiled.Count; iLoop++)
            {
                strUpdateValue += _updateFiled[iLoop];
                strUpdateValue += "='";
                strUpdateValue += _valueFiled[iLoop];
              
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值