1
yhj
2024-07-24 5e5d945e91568b973faa27d8ab0bcef99fc4a6c5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
using System;
using System.Text;
using System.Data;
using System.Data.Common;
using CSFramework.DB;
using CSFrameworkV5.Models;
using CSFrameworkV5.Common;
using CSFrameworkV5.Core;
using CSFrameworkV5.Core.CodeGenerator;
using CSFrameworkV5.DataAccess;
using CSFrameworkV5.Interfaces;
 
/*===================================================================
 *   程序说明: demo的数据访问层源码
 *   作者资料: 孙中吕
 *   创建日期: 2024/05/14 04:06:07
 *   最后修改: 2024/05/14 04:06:07
 *
 *   注: 本文件由代码生成器(Code Generator)自动生成。
 *   (此源码文件请放置在 YourProject.DataAccess 模块)
 *   版权所有 Copyright 2006~2024, C/S框架网(www.cscode.net)
 *===================================================================*/
 
namespace CSFrameworkV5.DataAccess
{
    /// <summary>
    /// DAL数据层:daldemo
    /// </summary>
    [DefaultORM_UpdateMode(typeof(demo), true)]
    public class daldemo : dalBaseDataDict
    {
        /// <summary>
        /// 构造器
        /// </summary>
        /// <param name="loginer">当前登录用户</param>
        public daldemo(Loginer loginer) : base(loginer)
        {
            _KeyName = demo.__KeyName; //主键字段
            _TableName = demo.__TableName; //表名
            _ModelType = typeof(demo); //指定ORM模型
            _ReplaceString = false;
            _UpdateSummaryKeyMode = UpdateKeyMode.None;
        }
 
        /// <summary>
        /// 根据表名获取该表的SQL命令生成器
        /// </summary>
        /// <param name="tableName">表名</param>
        /// <returns></returns>
        protected override IGenerateSqlCommand CreateSqlGenerator(
            DataTable table)
        {
            Type ORM = null;
            if (table.TableName == demo.__TableName)
                ORM = typeof(demo); //指定表与ORM模型的对应关系
            if (ORM == null) throw new Exception(table.TableName + "表没有ORM模型!");
            return new GenerateSqlCmdByTableFields(ORM, table,
                GeneratorFactory);
        }
 
        public DataTable Query(string name)
        {
            //构建CommandHelper实例,用于动态创建参数对象
            var cmd = _Database.CreateCommand("");
 
            var sb = new StringBuilder();
            sb.Append("SELECT * FROM demo WHERE 1=1 ");
 
            var p = _Database.ParamSymboName; //SQL参数符号
 
            if (!string.IsNullOrEmpty(name))
            {
                sb.Append($" AND name LIKE {p}name"); //拼接SQL条件
                cmd.AddParam("name", "%" + name + "%"); // 添加SQL参数对象,组合LIKE条件的值
            }
 
            sb.Append(" ORDER BY " + demo.__KeyName);
 
            //给DbCommand设置SQL脚本
            cmd.Command.CommandText = sb.ToStringEx();
 
            //调用IDatabase底层组件的方法
            return _Database.GetTable(cmd.Command, demo.__TableName);
        }
    } //public class
} //namespace