• 大小: 712KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-09-23
  • 语言: C#
  • 标签: C#  源码  7.0  

资源简介

本书详细介绍用C#语言进行程序开发需要掌握的知识和技术。全书由浅入深分三大部分,共21章,部分“基础知识”,包括.NET基础知识、C#类型基础、C#的面向对象技术、字符串、垃圾回收、异常处理;第二部分“C#特性”,包括委托和事件、泛型、反射、数据结构、LINQ的相关技术、动态语言运行时;第三部分“多线程和异步”,包括多线程的概念、多线程同步、异步编程理论与实例、任务并行库等。本书精选大量案例,循序渐进地讲解C#语言,内容丰富而翔实,并给出练习题,帮助读者更好地巩固所学知识,提升能力。前言和附录分别给出.NET程序员开发职位要求、技能等级、进阶之路,以及面试宝典,可帮助开发者新人快速进阶,找到适合自己的工作。

资源截图

代码片段和文件信息

using System;
using System.Data.SqlClient;
using System.Reflection;
using System.Text;

namespace MiniORM
{
    public class ORMHelper
    {
        public string connStr { get; }
        public Type type { get; }

        public ORMHelper(string s)
        {
            connStr = s;
        }

        //根据传入的实体类型建表
        public void CreateTable(Type type)
        {
            var sb = new StringBuilder(200);

            //获得表名
            var tableName = GetTableName(type);

            sb.Append(string.Format(“if not exists (select * from sysobjects where name = ‘{0}‘ and xtype = ‘U‘) “ tableName));
            sb.Append(string.Format(“create table [{0}]“ tableName));
            sb.Append(“(“);

            //获得主键名
            var pk = GetPK(type);

            //使用反射遍历实体所有的属性
            foreach(var property in type.GetProperties(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public))
            {
                //获得特性
                var attribute = property.GetCustomAttributes(typeof(DataFieldAttribute) false);
                var column = (DataFieldAttribute)attribute[0];
                if (column.name == pk)
                    sb.Append(string.Format(“[{0}] {1} IDENTITY NOT NULL PRIMARY KEY“
                        column.name
                        column.type));
                else 
                {
                    sb.Append(string.Format(“[{0}] {1} NOT NULL“
                        column.name
                        column.type));
                }
            }
            var sql = sb.ToString().Substring(0 sb.Length-1) + “)“;

            //执行方法
            ExecuteNonQuery(sql);

            Console.WriteLine(“表“ + tableName + “已被建立!“);
        }

        //插入一个值
        public void Insert(object newobject)
        {
            var type = newobject.GetType();
            var tableName = GetTableName(type);
            var pk = GetPK(type);
            object newobjectPKValue = new object();

            //从传入的对象中反射出pk的值 
            foreach(var property in type.GetProperties(BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public))
            {
                if (property.Name == pk)
                {
                    //通过GetValue获得值
                    newobjectPKValue = property.GetValue(newobject);
                    break;
                }
            }

            //搜索表中是否含有相同PK的记录
            if (HasExist(type newobjectPKValue))
            {
                Console.WriteLine(“表中已有相同PK的记录,不能重复插入!“);
                return;
            }

            var sb = new StringBuilder(200);
            sb.Append(“insert into “ + tableName + “ values (“);

            //遍历传入的对象的属性,并获得它们的值,用以拼凑INSERT语句
            foreach (var property in type.GetProperties())
            {
                sb.Append(“‘“);
                sb.Append(property.GetValue(newobject).ToString());
                sb.Append(“‘“);
            }

            var sql = sb.ToString().Substring(0 sb.Leng

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-09-28 23:07  CodeForCSharpBook-master\
     文件        2518  2018-09-28 23:07  CodeForCSharpBook-master\.gitattributes
     文件        4305  2018-09-28 23:07  CodeForCSharpBook-master\.gitignore
     文件        4992  2018-09-28 23:07  CodeForCSharpBook-master\README.md
     目录           0  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\
     目录           0  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\MiniORM\
     文件        1095  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\MiniORM\MiniORM.sln
     目录           0  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\MiniORM\MiniORM\
     文件         184  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\MiniORM\MiniORM\App.config
     文件        2347  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\MiniORM\MiniORM\MiniORM.csproj
     文件        7312  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\MiniORM\MiniORM\ORMHelper.cs
     文件        1055  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\MiniORM\MiniORM\Person.cs
     文件        3056  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\MiniORM\MiniORM\Program.cs
     目录           0  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\MiniORM\MiniORM\Properties\
     文件        1286  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\MiniORM\MiniORM\Properties\AssemblyInfo.cs
     目录           0  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\ReflectionLab\
     文件         184  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\ReflectionLab\App.config
     目录           0  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\ReflectionLab\LateBinding\
     文件         184  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\ReflectionLab\LateBinding\App.config
     文件        2280  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\ReflectionLab\LateBinding\LateBinding.csproj
     文件        1747  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\ReflectionLab\LateBinding\Program.cs
     目录           0  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\ReflectionLab\LateBinding\Properties\
     文件        1294  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\ReflectionLab\LateBinding\Properties\AssemblyInfo.cs
     文件        1467  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\ReflectionLab\Program.cs
     目录           0  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\ReflectionLab\Properties\
     文件        1298  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\ReflectionLab\Properties\AssemblyInfo.cs
     目录           0  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\ReflectionLab\ReflectionGeneric\
     文件         184  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\ReflectionLab\ReflectionGeneric\App.config
     文件        1337  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\ReflectionLab\ReflectionGeneric\Program.cs
     目录           0  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\ReflectionLab\ReflectionGeneric\Properties\
     文件        1306  2018-09-28 23:07  CodeForCSharpBook-master\第10章 反射\ReflectionLab\ReflectionGeneric\Properties\AssemblyInfo.cs
............此处省略1054个文件信息

评论

共有 条评论