资源简介
本书详细介绍用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个文件信息
- 上一篇:简易的答题系统
- 下一篇:c#读取txt文档中的代码源程序
相关资源
- C# 调用win32 api函数-user32.dll详细说明
- C# 调用BarTender打印条码DEMO
- 大型比赛竞赛抽签系统 可打印 c# vs
- C#编写的Gerber查看器
- lua C# .Net4.0 vs2010 LuaInterface
- C#十六进制编辑器
- 明华URF-35H读卡器 C#读写源码 为大家
- C#文件流读取CSV文件
- c#读写PDF文件sql
- C# winform Socket大文件传输
- c#车牌识别系统附30张测试图片
- 《C#面向对象程序设计》源代码(CS)
- 金旭亮《C#面向对象程序设计》教案
- 试题库管理系统毕业论文(C#)源程序
- 学校网站原代码(C#.NET)
- C#-数据库操作技术-员工管理系统
- U3D 简化版跳一跳小游戏新手入门 源码
- c#web开发入门经典
- C#与Matlab混合编程的几种方式
- c# 开发与 mysql数据库实现的增删改查
- C#异步操作 异步查询数据库 异步处理
- Basler相机通过IO触发源码
- [源代码] 《领域驱动设计 (C# 2008 实
- 松下PLC与C#通讯串口调试入门教程.z
- USB 继电器控制器 LCUS-1 保证能用 c#
- C# AES加密解密小工具
- C#圆形按钮,非常漂亮动态~~
- [精]C#仿QQ右下角弹出提示框()
- C#进程间通信-共享内存代码
- 有史以来最简单的三层(C#)
评论
共有 条评论