SQLTools

 1     delegate T CreateModelHandel<T>(SqlDataReader reader);
 2     class SQLTools
 3     {
 4         internal static List<T> Query<T>(string sql, CreateModelHandel<T> creator,object args = null)
 5         {
 6             List<T> list = new List<T>();
 7             using (var conn = new SqlConnection(SQLHelper.ConnStr))
 8             {
 9                 conn.Open();
10
11                 SqlCommand cmd = new SqlCommand(sql, conn);
12                 if (args != null)
13                 {
14                     foreach (var item in args.GetType().GetProperties())
15                     {
16                         string name = item.Name;
17                         object value = item.GetValue(args, null);
18                         cmd.Parameters.AddWithValue("@"+name, value);
19                     }
20                 }
21
22                 using (var reader = cmd.ExecuteReader())
23                 {
24                     while (reader.Read())
25                     {
26                         T item = creator(reader);
27                         list.Add(item);
28                     }
29                 }
30             }
31             return list;
32         }
33
34         internal static T QueryFirst<T>(string sql, CreateModelHandel<T> creator, object args = null)
35         {
36             T first = default(T);
37             using (var conn = new SqlConnection(SQLHelper.ConnStr))
38             {
39                 conn.Open();
40
41                 SqlCommand cmd = new SqlCommand(sql, conn);
42                 if (args != null)
43                 {
44                     foreach (var item in args.GetType().GetProperties())
45                     {
46                         string name = item.Name;
47                         object value = item.GetValue(args, null);
48                         cmd.Parameters.AddWithValue("@"+name, value);
49                     }
50                 }
51
52                 using (var reader = cmd.ExecuteReader())
53                 {
54                     if (reader.Read())
55                     {
56                         first = creator(reader);
57                     }
58                 }
59             }
60             return first;
61         }
62
63         internal static int NoQuery(string sql, object args = null)
64         {
65             int res = -1;
66             using (var conn = new SqlConnection(SQLHelper.ConnStr))
67             {
68                 conn.Open();
69
70                 SqlCommand cmd = new SqlCommand(sql, conn);
71                 if (args != null)
72                 {
73                     foreach (var item in args.GetType().GetProperties())
74                     {
75                         string name = item.Name;
76                         object value = item.GetValue(args, null);
77                         cmd.Parameters.AddWithValue("@"+name, value);
78                     }
79                 }
80
81                 res = cmd.ExecuteNonQuery();
82             }
83             return res;
84         }
85     }

调用:

 1         public List<RoomType> Get(string typeName)
 2         {
 3             string sql = "select * from RoomType where TypeName like ‘%‘[email protected]+‘%‘";
 4             return SQLTools.Query<RoomType>(sql, CreateRoom, new { TypeName = typeName });
 5         }
 6
 7         public int Add(RoomType type)
 8         {
 9             string sql = "insert RoomType values(@TypeName,@TypePrice)";
10             return SQLTools.NoQuery(sql, new { TypeName = type.TypeName, TypePrice = type.TypePrice });
11         }
12
13         public int Change(RoomType type)
14         {
15             string sql = @"update RoomType
16                             set TypeName = @TypeName, TypePrice = @TypePrice
17                             where TypeID = @TypeID";
18             return SQLTools.NoQuery(sql, type);
19         }
20
21         public int Remove(int typeID)
22         {
23             string sql = "delete RoomType where TypeID = @TypeID";
24             return SQLTools.NoQuery(sql, new { TypeID = typeID });
25         }
26
27         public RoomType CreateRoom(SqlDataReader reader)
28         {
29             RoomType item = new RoomType();
30             item.TypeID = Convert.ToInt32(reader["TypeID"]);
31             item.TypeName = Convert.ToString(reader["TypeName"]);
32             item.TypePrice = Convert.ToDecimal(reader["TypePrice"]);
33             return item;
34         }
时间: 2024-10-09 03:21:48

SQLTools的相关文章

clr

EXEC sp_configure 'clr enabled', 1 RECONFIGURE WITH OVERRIDE GO ----创建创建包含类元数据和托管代码的托管应用程序模块,将其作为 SQL Server 实例中的对象. CREATE ASSEMBLY [Goophee.SQLTools] FROM 'F:\Work\微桥商城\Spider\WQSpider\SQLCLR\bin\Release\SQLCLR.dll' GO CREATE AGGREGATE JoinString (

Development Tools

Introduction Even Chris created his article of Useful Reference Books ages ago I just bumped into it, and after adding my bit I thought to do something similar in the field of development tools. So feel free and add tools you found useful in your car

成为专业程序员路上用到的各种优秀资料、神器及框架

最近想着怎么把自己的知识体系进行整理起来,使用思维导图进行描述,对自己以后的发展也有一个更深的认识,更快的提升自己:看到了下面这篇文章,感觉非常实用,从语言到框架都非常全面,自己也可以继续补充,也是对自己知识体系的一个补充吧. 前言 成为一名专业程序员的道路上,需要坚持练习.学习与积累,技术方面既要有一定的广度,更要有自己的深度. 笔者作为一位tool mad,将工作以来用到的各种优秀资料.神器及框架整理在此,毕竟好记性不如烂键盘,此项目可以作为自己的不时之需. 本人喜欢折腾,记录的东西也比较杂

[转]SQLSERVER一些公用DLL的作用解释

转自:Leo_wlCnBlogs SQLSERVER一些公用DLL的作用解释 如果你的SQLSERVER安装在C盘的话,下面的路径就是相应SQLSERVER版本的公用DLL的存放路径 SQL2005 C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies\ SQL2008 C:\Program Files\Microsoft SQL Server\100\SDK\Assemblies\ SQL2012 C:\Program Files\Mi

SSMS2008插件开发(3)--部署调试SSMS2008插件

原文:SSMS2008插件开发(3)--部署调试SSMS2008插件 上一次说到VS2008中的插件开发,最终结果插件是部署在VS2008中,现在我们将插件部署到SSMS2008(Microsoft Sql Server Management Studio 2008)中.可以参考一下这里. 打开上一次的项目MySSMSAddin,右"解决方案资源管理器"中右击该项目,选择"属性",进入该项目的属性设置界面.在"应用程序"选项卡中,将"程

在windows 2008 R2中SQl Server 2008中代理启动失败的一个原因总结

启动SQL代理的时候报错如下: 关调用实时(JIT)调试而不是此对话框的详细信息,请参见此消息的结尾. ************** 异常文本 **************System.NullReferenceException: 未将对象引用设置到对象的实例. Server stack trace: 在 Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.ObjectExplorer.FindObjectExplore

【真正福利】成为专业程序员路上用到的各种优秀资料、神器及框架

转载,原地址:http://www.cnblogs.com/jasondan/p/6380597.html 据说看到好文章不推荐的人,服务器容易宕机!本文版权归翟士丹(Stan Zhai)和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利. 好东西不是随便收集下,发篇博文,骗些点赞的!积累了5年多的东西,是时候放出来跟大家见见面了. 或许有的园友在14年的时候收藏过我的一篇"工欲善其事.必先利其器"的博文,时隔3年,已经

从控制台输入输出,来进行数据库的插入和查询操作的小程序

首先来看一下数据库结构 然后将数据库中插入如下数据 eclipse中包和Java文件 examStudent包的代码 ExamStudent.java package examStudent; public class ExamStudent { /** * 流水号 */ private int flowId; /** * 四级.六级 */ private int type; /** * 身份证号码 */ private int idCard; /** * 准考证号码 */ private in

测试1.书店的增删改查项目.链接数据库

0.1创建数据库 0.2向数据库内添加数据 0.3创建一个辅助类 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace Library 8 { 9 public class SqlTools 10 { 11 public static string str = "Data