T_User表DAL层书写

using System;
using System.Collections.Generic;
using System.Text;
using M = MODEL;
using System.Data;
using System.Data.SqlClient;
namespace DAL
{
    public class User
    {
        /// <summary>
        /// 判断一个用户对象是否存在
        /// </summary>
        /// <param name="model">要判断的目标对象</param>
        /// <returns></returns>
        public bool Exists(M.User model)
        {
            StringBuilder sql = new StringBuilder();
            sql.Append("Select Count(*) From T_User Where ");
            sql.Append("U_name='" + model.U_name + "' and");
            sql.Append(" U_pwd='" + model.U_pwd + "'");
            int i = Convert.ToInt32(SQLHelper.ExecuteScalar(sql.ToString()));
            if (i > 0)
                return true;
            else

                return false;
          }

        /// <summary>
        /// 返回当前用户总数
        /// </summary>
        /// <returns></returns>
        public int Count()
        {
            StringBuilder sql = new StringBuilder();
            sql.Append("Select Count(1) From T_User");
            return Convert.ToInt32(SQLHelper.ExecuteScalar(sql.ToString()));
        }

        /// <summary>
        /// 返回系统中符合条件的数据行数量
        /// </summary>
        /// <param name="where">要查询的条件,例如 "name like '%thc%'"</param>
        /// <returns></returns>
        public int Count(string where)
        {
            StringBuilder sql = new StringBuilder();
            sql.Append("Select Count(1) From T_User");
            sql.Append(" Where " + where);
            return Convert.ToInt32(SQLHelper.ExecuteScalar(sql.ToString()));

        }

        /// <summary>
        ///添加一个实体到数据库
        /// </summary>
        /// <param name="model">要添加的实体</param>
        /// <returns></returns>
        public int Add(M.User model)
        {
            StringBuilder sql = new StringBuilder();
            sql.Append("Insert into T_User(U_name,U_pwd) values('" + model.U_name + "','" + model.U_pwd + "')");
            sql.Append(" Select @@IDENTITY");
            return Convert.ToInt32(SQLHelper.ExecuteScalar(sql.ToString()));

        }

        /// <summary>
        /// 根据传入的实体对象更新数据库
        /// </summary>
        /// <param name="model">要更新的实体对象</param>
        /// <returns></returns>
        public bool Update(M.User model)
        {
            StringBuilder sql = new StringBuilder();
            sql.Append("Update T_User Set ");
            sql.Append("U_name='" + model.U_name + "',");
            sql.Append("U_pwd='" + model.U_pwd + "' ");
            sql.Append(" Where U_id=" + model.U_id);
            int i = Convert.ToInt32(SQLHelper.ExecuteNonQuery(sql.ToString()));
            if (i > 0)
                return true;
            else
                return false;

        }

        /// <summary>
        /// 删除指定的数据行
        /// </summary>
        /// <param name="u_id">要删除的对象ID</param>
        /// <returns></returns>
        public bool Delete(int u_id)
        {
            StringBuilder sql = new StringBuilder();
            sql.Append("Delete T_User Where U_id=");
            sql.Append(u_id);
            int i = Convert.ToInt32(SQLHelper.ExecuteNonQuery(sql.ToString()));
            if (i > 0)
                return true;
            else
                return false;

        }

        /// <summary>
        /// 根据条件进行删除
        /// </summary>
        /// <param name="where">要删除那些条件的数据行</param>
        /// <param name="tf">确认删除</param>
        /// <returns></returns>
        public int Delete(string where, bool tf)
        {
            int i = 0;
            StringBuilder sql = new StringBuilder();
            sql.Append("Delete T_User ");
            if (where.Trim() != "")
                sql.Append("Where " + where);
            if (tf)
            {
                i = Convert.ToInt32(SQLHelper.ExecuteNonQuery(sql.ToString()));
            }
            return i;

        }

        /// <summary>
        /// 查询指定ID的实体
        /// </summary>
        /// <param name="id">要查询的实体ID</param>
        /// <returns></returns>
        public MODEL.User GetModel(int id)
        {
            StringBuilder sql = new StringBuilder();
            sql.Append("Select * From T_User Where U_id=" + id);
            DataSet ds = SQLHelper.GetList(sql.ToString(), "user");
            MODEL.User mu = new MODEL.User();
            if(ds.Tables["user"].Rows.Count>0)
            {                
                if (ds.Tables["user"].Rows[0]["U_id"] != null)
                mu.U_id = Convert.ToInt32(ds.Tables["user"].Rows[0]["U_id"]);
                mu.U_name = ds.Tables["user"].Rows[0]["U_name"].ToString();
                mu.U_pwd = ds.Tables["user"].Rows[0]["U_pwd"].ToString();
            }
            return mu;

        }

        /// <summary>
        /// 返回全部用户列表
        /// </summary>
        /// <returns></returns>
        public DataSet GetAll()
        {
            StringBuilder sql = new StringBuilder();
            sql.Append("Select * From T_User");
            return SQLHelper.GetList(sql.ToString(), "user");

        }

        /// <summary>
        /// 返回符合条件的数据行为一个DataSet
        /// </summary>
        /// <param name="where">要查询的条件,例如 "name like '%thc%'"</param>
        /// <returns></returns>
        public DataSet GetAll(string where)
        {
            StringBuilder sql = new StringBuilder();
            sql.Append("Select * From T_User");
            if (where.Trim() != "")
                sql.Append("Where " + where);
            return SQLHelper.GetList(sql.ToString(), "user");

        }

        /// <summary>
        /// 返回一个数据流
        /// </summary>
        /// <returns></returns>
        public SqlDataReader GetReader()
        {
            StringBuilder sql = new StringBuilder();
            sql.Append("Select * From T_User");
            return SQLHelper.ExecuteReader(sql.ToString());

        }

        /// <summary>
        /// 返回符合条件的数据行为一个DataReader
        /// </summary>
        /// <param name="where">要查询的条件,例如 "name like '%thc%'"</param>
        /// <returns></returns>
        public SqlDataReader GetReader(string where)
        {
            StringBuilder sql = new StringBuilder();
            sql.Append("Select * From T_User");
            if (where.Trim() != "")
                sql.Append("Where " + where);
            return SQLHelper.ExecuteReader(sql.ToString());
        }

        /// <summary>
        /// 返回指定用户密码的账号的ID
        /// </summary>
        /// <returns></returns>
        public int GetId(string name, string pwd)
        {
            StringBuilder sql = new StringBuilder();
            sql.Append("Select U_id From T_User");
            sql.Append(" Where U_name='" + name + "' and U_pwd='" + pwd + "'");
            return Convert.ToInt32(SQLHelper.ExecuteScalar(sql.ToString()));
        }
    }
}
/*!Copyright (c) 2022-2023 TP-LINK Technologies CO.,LTD. *All rights reserved. * *\file adNat.c *\brief The adapter-APP layer source code for nat * *\author zenglinfeng <zenglinfeng@tp-link.com.cn> *\version 1.0.0 *\date 02/10/2025 * *\history \arg 1.0.0 02/10/2025, zenglinfeng, Create file. */ /**************************************************************************************************/ /* INCLUDE_FILES */ /**************************************************************************************************/ /* libc header */ #include <stdio.h> /* syscall header */ #include <arpa/inet.h> /* common header */ #include "fepTypes.h" #include "fepDefs.h" /* platform header */ #include "midware/dal.h" /* public application header */ // #include "common/applError.h" #include "common/applError.h" #include "common/dmpComDef.h" // #include "../fep/host/demo/include/errAppDemo.h" /*private header*/ #include "adNat.h" // #include "dalAppDemoPub.h" #include "tpDbg/tpdebug.h" #include "dmlib/dmZone.h" #include "dmlib/dmZone.h" #include "libAppCpn/libZone.h" #include "netIf/configNetIfPub.h" #include "netIf/errNetIf.h" #include "netIf/netIfPub.h" #include "uilib/uilibNetIf.h" #include "libApp/libNetIf/libNetIf.h" #include "nat/natDebug.h" /**************************************************************************************************/ /* DEFINES */ /**************************************************************************************************/ /**************************************************************************************************/ /* TYPES */ /**************************************************************************************************/ /**************************************************************************************************/ /* EXTERN_PROTOTYPES */ /**************************************************************************************************/ /**************************************************************************************************/ /* LOCAL_PROTOTYPES */ /**************************************************************************************************/ /**************************************************************************************************/ /* VARIABLES */ /**************************************************************************************************/ /**************************************************************************************************/ /* LOCAL_FUNCTIONS */ /**************************************************************************************************/ /**************************************************************************************************/ /* PUBLIC_FUNCTIONS */ /**************************************************************************************************/ /* 解析one_entry结构体 添加SM DAL */ // dalAdoiEntryOperAppend(adoi, DAL_NAT_SM_ENTRY_TBL, DAL_OPER_ADD); STATUS adNatSMEntryAddOrDel(NAT_SM_AD_ENTRY *sm_entry) { char _k[DAL_KEY_MAX_LEN] = {}; sprintf(_k, DAL_NAT_SM_ENTRY_TBL_FMT, sm_entry->internal_ip, sm_entry->external_ip, sm_entry->internal_ports, sm_entry->external_ports, sm_entry->type, sm_entry->protocol); /* 先查找是否存在相同的key */ dal_ado_t *adoi_get = NULL; adoi_get = dalAdoiCreate(DMP_DEV_NAME_SWITCHMAC, DAL_MOD_NAT, DAL_CFG_TYPE_ENTRY); APPL_ENSURE_RET_VAL(NULL != adoi_get, ERR_NO_MEMORY); dalAdoiEntryTableAppend(adoi_get, DAL_NAT_SM_ENTRY_TBL); dalAdoiAddEntryKey(adoi_get, DAL_NAT_SM_ENTRY_TBL, _k, 0); dalAdoiAddEntryField(adoi_get, DAL_NAT_SM_ENTRY_TBL, DAL_NAT_SM_FILED_REF_COUNT); dalAdoiEntryOperAppend(adoi_get, DAL_NAT_SM_ENTRY_TBL, DAL_OPER_GET_F); dalGet(adoi_get); int ref_count = 0; void *sm_handler = NULL; if (NULL != (sm_handler = DAL_ADOI_ENTRY(adoi_get, DAL_NAT_SM_ENTRY_TBL))) { DAL_ADOI_ENTRY_LOOP(sm_handler) { if (DAL_ADOI_ENTRY_KEY_EMPTY(sm_handler)) { break; } char *current_key = DAL_ADOI_ENTRY_KEY(sm_handler); DAL_ADOI_ENTRY_FIELD_LOOP(sm_handler, current_key) { if (DAL_ADOI_ENTRY_FIELD_MATCH(sm_handler, DAL_NAT_SM_FILED_REF_COUNT)) { dalAdoiGetEntryI32(adoi_get, DAL_NAT_SM_ENTRY_TBL, &ref_count); break; } } } } if (sm_entry->is_add == 1) { ref_count++; } else { ref_count--; } if (ref_count > 0) { /* 引用计数大于0 则进行set */ dal_ado_t *adoi_set = NULL; adoi_set = dalAdoiCreate(DMP_DEV_NAME_SWITCHMAC, DAL_MOD_NAT, DAL_CFG_TYPE_ENTRY); APPL_ENSURE_RET_VAL(NULL != adoi_set, ERR_NO_MEMORY); dalAdoiEntryTableAppend(adoi_set, DAL_NAT_SM_ENTRY_TBL); dalAdoiAddEntryKey(adoi_set, DAL_NAT_SM_ENTRY_TBL, _k, 0); dalAdoiAddEntryStr(adoi_set, DAL_NAT_SM_ENTRY_TBL, DAL_NAT_SM_FILED_WAN_IP, sm_entry->wan_ip); dalAdoiAddEntryUI32(adoi_set, DAL_NAT_SM_ENTRY_TBL, DAL_NAT_SM_FILED_NUM_WAN_IP, sm_entry->num_wan_ip); dalAdoiAddEntryStr(adoi_set, DAL_NAT_SM_ENTRY_TBL, DAL_NAT_SM_FILED_IFINDEX, sm_entry->if_index); dalAdoiAddEntryI32(adoi_set, DAL_NAT_SM_ENTRY_TBL, DAL_NAT_SM_FILED_REF_COUNT, ref_count); dalAdoiEntryOperAppend(adoi_set, DAL_NAT_SM_ENTRY_TBL, DAL_OPER_ADD); PFM_IF_FAIL_RET_VAL(dalSet(adoi_set), ERR_HW_OP_FAIL); if (adoi_set != NULL) { dalAdoiDestroy(adoi_set); } if (adoi_get != NULL) { dalAdoiDestroy(adoi_get); } } else { /* 引用计数为0 需要删除条目 */ dal_ado_t *adoi_del = NULL; adoi_del = dalAdoiCreate(DMP_DEV_NAME_SWITCHMAC, DAL_MOD_NAT, DAL_CFG_TYPE_ENTRY); APPL_ENSURE_RET_VAL(NULL != adoi_del, ERR_NO_MEMORY); dalAdoiEntryTableAppend(adoi_del, DAL_NAT_SM_ENTRY_TBL); dalAdoiAddEntryKey(adoi_del, DAL_NAT_SM_ENTRY_TBL, _k, 0); dalAdoiEntryOperAppend(adoi_del, DAL_NAT_SM_ENTRY_TBL, DAL_OPER_DEL); PFM_IF_FAIL_RET_VAL(dalSet(adoi_del), ERR_HW_OP_FAIL); if (adoi_del != NULL) { dalAdoiDestroy(adoi_del); } } return ERR_NO_ERROR; } STATUS adNatPtEntryAddOrDel(NAT_PT_AD_ENTRY *pt_entry) { char _k[DAL_KEY_MAX_LEN] = {}; sprintf(_k, DAL_NAT_PT_ENTRY_TBL_FMT, pt_entry->trigger_ports, pt_entry->trigger_proto, pt_entry->incoming_ports, pt_entry->incoming_proto); if (pt_entry->is_add == 1) { /* 添加条目 */ dal_ado_t *adoi_set = NULL; adoi_set = dalAdoiCreate(DMP_DEV_NAME_SWITCHMAC, DAL_MOD_NAT, DAL_CFG_TYPE_ENTRY); APPL_ENSURE_RET_VAL(NULL != adoi_set, ERR_NO_MEMORY); dalAdoiEntryTableAppend(adoi_set, DAL_NAT_PT_ENTRY_TBL); dalAdoiAddEntryKey(adoi_set, DAL_NAT_PT_ENTRY_TBL, _k, 0); dalAdoiAddEntryStr(adoi_set, DAL_NAT_PT_ENTRY_TBL, DAL_NAT_PT_FILED_WAN_IP, pt_entry->wan_ip); dalAdoiAddEntryUI32(adoi_set, DAL_NAT_PT_ENTRY_TBL, DAL_NAT_PT_FILED_NUM_WAN_IP, pt_entry->num_wan_ip); dalAdoiAddEntryStr(adoi_set, DAL_NAT_PT_ENTRY_TBL, DAL_NAT_PT_FILED_IFINDEX, pt_entry->if_index); dalAdoiEntryOperAppend(adoi_set, DAL_NAT_PT_ENTRY_TBL, DAL_OPER_ADD); PFM_IF_FAIL_RET_VAL(dalSet(adoi_set), ERR_HW_OP_FAIL); if (adoi_set != NULL) { dalAdoiDestroy(adoi_set); } } else { /* 删除条目 */ dal_ado_t *adoi_del = NULL; adoi_del = dalAdoiCreate(DMP_DEV_NAME_SWITCHMAC, DAL_MOD_NAT, DAL_CFG_TYPE_ENTRY); APPL_ENSURE_RET_VAL(NULL != adoi_del, ERR_NO_MEMORY); dalAdoiEntryTableAppend(adoi_del, DAL_NAT_PT_ENTRY_TBL); dalAdoiAddEntryKey(adoi_del, DAL_NAT_PT_ENTRY_TBL, _k, 0); dalAdoiEntryOperAppend(adoi_del, DAL_NAT_PT_ENTRY_TBL, DAL_OPER_DEL); PFM_IF_FAIL_RET_VAL(dalSet(adoi_del), ERR_HW_OP_FAIL); if (adoi_del != NULL) { dalAdoiDestroy(adoi_del); } } return ERR_NO_ERROR; } STATUS adNatMASQEntryAddOrDel(NAT_MASQ_AD_ENTRY *masq_entry) { char _k[DAL_KEY_MAX_LEN] = {}; sprintf(_k, DAL_NAT_MASQ_ENTRY_TBL_FMT, masq_entry->if_index); if (masq_entry->is_add == 1) { /* 添加条目 */ dal_ado_t *adoi_set = NULL; adoi_set = dalAdoiCreate(DMP_DEV_NAME_SWITCHMAC, DAL_MOD_NAT, DAL_CFG_TYPE_ENTRY); APPL_ENSURE_RET_VAL(NULL != adoi_set, ERR_NO_MEMORY); dalAdoiEntryTableAppend(adoi_set, DAL_NAT_MASQ_ENTRY_TBL); dalAdoiAddEntryKey(adoi_set, DAL_NAT_MASQ_ENTRY_TBL, _k, 0); dalAdoiAddEntryUI32(adoi_set, DAL_NAT_MASQ_ENTRY_TBL, DAL_NAT_MASQ_FILED_IFINDEX, (unsigned int)masq_entry->if_index); dalAdoiEntryOperAppend(adoi_set, DAL_NAT_MASQ_ENTRY_TBL, DAL_OPER_ADD); PFM_IF_FAIL_RET_VAL(dalSet(adoi_set), ERR_HW_OP_FAIL); if (adoi_set != NULL) { dalAdoiDestroy(adoi_set); } } else { /* 删除条目 */ dal_ado_t *adoi_del = NULL; adoi_del = dalAdoiCreate(DMP_DEV_NAME_SWITCHMAC, DAL_MOD_NAT, DAL_CFG_TYPE_ENTRY); APPL_ENSURE_RET_VAL(NULL != adoi_del, ERR_NO_MEMORY); dalAdoiEntryTableAppend(adoi_del, DAL_NAT_MASQ_ENTRY_TBL); dalAdoiAddEntryKey(adoi_del, DAL_NAT_MASQ_ENTRY_TBL, _k, 0); dalAdoiEntryOperAppend(adoi_del, DAL_NAT_MASQ_ENTRY_TBL, DAL_OPER_DEL); PFM_IF_FAIL_RET_VAL(dalSet(adoi_del), ERR_HW_OP_FAIL); if (adoi_del != NULL) { dalAdoiDestroy(adoi_del); } } return ERR_NO_ERROR; } STATUS adNatSMDelByKey(char *key) { dal_ado_t *adoi_del = NULL; adoi_del = dalAdoiCreate(DMP_DEV_NAME_SWITCHMAC, DAL_MOD_NAT, DAL_CFG_TYPE_ENTRY); APPL_ENSURE_RET_VAL(NULL != adoi_del, ERR_NO_MEMORY); dalAdoiEntryTableAppend(adoi_del, DAL_NAT_SM_ENTRY_TBL); dalAdoiAddEntryKey(adoi_del, DAL_NAT_SM_ENTRY_TBL, key, 0); dalAdoiEntryOperAppend(adoi_del, DAL_NAT_SM_ENTRY_TBL, DAL_OPER_DEL); PFM_IF_FAIL_RET_VAL(dalSet(adoi_del), ERR_HW_OP_FAIL); if (adoi_del != NULL) { dalAdoiDestroy(adoi_del); } return ERR_NO_ERROR; } STATUS adNatPtDelByKey(char *key) { dal_ado_t *adoi_del = NULL; adoi_del = dalAdoiCreate(DMP_DEV_NAME_SWITCHMAC, DAL_MOD_NAT, DAL_CFG_TYPE_ENTRY); APPL_ENSURE_RET_VAL(NULL != adoi_del, ERR_NO_MEMORY); dalAdoiEntryTableAppend(adoi_del, DAL_NAT_PT_ENTRY_TBL); dalAdoiAddEntryKey(adoi_del, DAL_NAT_PT_ENTRY_TBL, key, 0); dalAdoiEntryOperAppend(adoi_del, DAL_NAT_PT_ENTRY_TBL, DAL_OPER_DEL); PFM_IF_FAIL_RET_VAL(dalSet(adoi_del), ERR_HW_OP_FAIL); if (adoi_del != NULL) { dalAdoiDestroy(adoi_del); } return ERR_NO_ERROR; } 解释下这个代码
最新发布
07-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皮特大熊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值