最新要闻
- 秦都区吴办吴家堡社区新时代文明实践站开展党建引领 “童”行同乐活动
- 热点!110万的比亚迪大把人买!仰望U8预售48小时:订单已超1.3万份
- NVIDIA大失所望:RTX 4070卖崩了!AMD成市场赢家
- 天天资讯:用户自驾突发紧急情况!最后用华为P60 Pro获救:用一次续一生
- 五一假期十大热门城市:看看有你想去的吗?
- 升空后人工引爆!下次再来 成功三分之一的Starship 新动态
- 长安C401将被称为长安辛特克斯动力来自马自达1.6 天天微资讯
- 环球速讯:园企智推官“我为企业代言”推介大赛开启
- 全球通讯!苹果版余额宝收益4%?我可一点都不羡慕 背后有猫腻
- 世界视讯!你信吗?宝马MINI再道歉:吃冰淇淋的“老外”是同事 求宽容2位小姐姐
- 1499元起!荣耀X50i手机发布:标配256GB超大存储
- 环球快资讯:我国天文学家为银河系精确“称重”:约为8050亿个太阳质量
- 高速上惊现喷气式汽车 车尾一路滚滚浓烟 涡轮增压器坏了
- 海南省白沙县2023-04-20 12:36发布雷电黄色预警
- 每日关注!南昌大学举办潘际銮教育思想研讨会
- 伛偻提携往来而不绝者滁人游也翻译_伛偻提携_焦点热文
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
C#写一套最全的SQL server帮助类(包括增删改查)
(资料图片仅供参考)
我定义了一系列静态方法,用于执行SQL Server数据库的增删改查等操作。其中:ExecuteNonQuery方法用于执行指定的SQL语句并返回受影响的行数;ExecuteScalar方法用于执行指定的SQL语句并返回查询结果的第一行第一列;ExecuteDataTable方法用于执行指定的SQL语句并返回一个数据表;ExecuteReader方法用于执行指定的SQL语句并返回一个DataReader对象。Insert方法用于向指定的表中插入一条记录,并返回新记录的ID值(如果有自增字段);Update方法用于更新指定表中满足条件的记录,并返回受影响的行数;Delete方法用于删除指定表中满足条件的记录,并返回受影响的行数。在这些方法中,我们使用了ADO.NET的相关技术,包括SqlConnection、SqlCommand、SqlDataAdapter、DataSet等类,以及SqlParameter对象来
一、下面是一套SQL Server的帮助类,包括增删改查等操作,并且带有详细注释。
using System;using System.Collections.Generic;using System.Data;using System.Data.SqlClient;public class SqlserverHelper{ private static string connectionString = "Data Source=服务器名称;Initial Catalog=数据库名称;User ID=用户名;Password=密码"; // 数据库连接字符串 ///View Code/// 执行指定的SQL语句并返回受影响的行数 /// /// 要执行的SQL语句 ///受影响的行数 public static int ExecuteNonQuery(string sql) { using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); // 打开数据库连接 SqlCommand cmd = new SqlCommand(sql, conn); int count = cmd.ExecuteNonQuery(); // 执行SQL语句并返回受影响的行数 return count; // 返回受影响的行数 } } ////// 执行指定的SQL语句并返回查询结果的第一行第一列 /// /// 要执行的SQL语句 ///查询结果的第一行第一列 public static object ExecuteScalar(string sql) { using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); // 打开数据库连接 SqlCommand cmd = new SqlCommand(sql, conn); object obj = cmd.ExecuteScalar(); // 执行SQL语句并返回查询结果的第一行第一列 return obj; // 返回查询结果的第一行第一列 } } ////// 执行指定的SQL语句并返回一个数据表 /// /// 要执行的SQL语句 ///查询结果的数据表 public static DataTable ExecuteDataTable(string sql) { using (SqlConnection conn = new SqlConnection(connectionString)) { conn.Open(); // 打开数据库连接 SqlDataAdapter adapter = new SqlDataAdapter(sql, conn); DataSet ds = new DataSet(); adapter.Fill(ds); // 执行SQL语句并将查询结果填充到DataSet对象中 return ds.Tables[0]; // 返回查询结果的数据表 } } ////// 执行指定的SQL语句并返回一个DataReader对象 /// /// 要执行的SQL语句 ///查询结果的DataReader对象 public static SqlDataReader ExecuteReader(string sql) { SqlConnection conn = new SqlConnection(connectionString); conn.Open(); // 打开数据库连接 SqlCommand cmd = new SqlCommand(sql, conn); SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); // 执行SQL语句并返回DataReader对象 return reader; // 返回查询结果的DataReader对象 } ////// 向指定的表中插入一条记录,并返回新记录的ID值(如果有自增字段) /// /// 要插入记录的表名称 /// 要插入记录的字段和值的集合 ///新记录的ID值(如果有自增字段) public static int Insert(string tableName, Dictionaryfields) { string sql = "insert into " + tableName + "("; string values = ") values ("; SqlCommand cmd = new SqlCommand(); foreach (KeyValuePair field in fields) { sql += "[" + field.Key + "],"; values += "@" + field.Key + ","; cmd.Parameters.AddWithValue("@" + field.Key, field.Value); } sql = sql.TrimEnd(",") + values.TrimEnd(",") + ")"; sql += ";select @@identity"; // 如果有自增字段,则返回新记录的ID值 cmd.Connection = new SqlConnection(connectionString); cmd.CommandText = sql; cmd.Connection.Open(); // 打开数据库连接 int newId; if (cmd.ExecuteScalar() != DBNull.Value) { newId = Convert.ToInt32(cmd.ExecuteScalar()); } else { newId = 0; // 如果没有自增字段,则返回0 } cmd.Connection.Close(); // 关闭数据库连接 return newId; // 返回新记录的ID值 } /// /// 更新指定表中满足条件的记录,并返回受影响的行数 /// /// 要更新记录的表名称 /// 要更新的字段和值的集合 /// 更新条件的字段和值的集合 ///受影响的行数 public static int Update(string tableName, Dictionaryfields, Dictionary conditions) { string sql = "update " + tableName + " set "; SqlCommand cmd = new SqlCommand(); foreach (KeyValuePair field in fields) { sql += "[" + field.Key + "]=@" + field.Key + ","; cmd.Parameters.AddWithValue("@" + field.Key, field.Value); } sql = sql.TrimEnd(","); if (conditions != null && conditions.Count > 0) { sql += " where "; foreach (KeyValuePair condition in conditions) { sql += "[" + condition.Key + "]=@" + condition.Key + " and "; cmd.Parameters.AddWithValue("@" + condition.Key, condition.Value); } sql = sql.TrimEnd(" ", "a", "n", "d"); } cmd.Connection = new SqlConnection(connectionString); cmd.CommandText = sql; cmd.Connection.Open(); // 打开数据库连接 int count = cmd.ExecuteNonQuery(); // 执行SQL语句并返回受影响的行数 cmd.Connection.Close(); // 关闭数据库连接 return count; // 返回受影响的行数 } /// /// 删除指定表中满足条件的记录,并返回受影响的行数 /// /// 要删除记录的表名称 /// 删除条件的字段和值的集合 ///受影响的行数 public static int Delete(string tableName, Dictionaryconditions) { string sql = "delete from " + tableName; SqlCommand cmd = new SqlCommand(); if (conditions != null && conditions.Count > 0) { sql += " where "; foreach (KeyValuePair condition in conditions) { sql += "[" + condition.Key + "]=@" + condition.Key + " and "; cmd.Parameters.AddWithValue("@" + condition.Key, condition.Value); } sql = sql.TrimEnd(" ", "a", "n", "d"); } cmd.Connection = new SqlConnection(connectionString); cmd.CommandText = sql; cmd.Connection.Open(); // 打开数据库连接 int count = cmd.ExecuteNonQuery(); // 执行SQL语句并返回受影响的行数 cmd.Connection.Close(); // 关闭数据库连接 return count; // 返回受影响的行数 }}
二、每一个方法的调用。
在这个示例中,我首先调用ExecuteNonQuery方法向数据库中插入一条记录,并输出插入的行数;然后调用ExecuteScalar方法查询了数据库中记录的总数,并输出结果;接下来,我使用ExecuteDataTable方法查询了符合条件的记录,并通过遍历数据表的方式输出所有记录的信息。然后使用ExecuteReader方法查询了所有的记录,并通过遍历DataReader对象的方式输出所有记录的信息。请注意,在使用完DataReader对象后必须调用其Close()方法关闭它。接着使用Insert方法向数据库中插入了一条记录,并获得了新记录的ID值(如果有自增字段);还使用Update方法更新了符合条件的记录,并输出了更新的行数;最后,使用Delete方法删除了符合条件的记录,并输出了删除的行数。当然,这些示例只是演示了如何使用SqlHelper类中的每一个方法。在实际应用中,将根据具体的需求来调用它们并处理查询结果。
static void Main(string[] args) { // 执行指定的SQL语句并返回受影响的行数 int count = SqlserverHelper.ExecuteNonQuery("insert into [User](UserName, Password) values("admin", "123456")"); Console.WriteLine("受影响的行数:" + count); // 执行指定的SQL语句并返回查询结果的第一行第一列 object obj = SqlserverHelper.ExecuteScalar("select count(*) from [User]"); Console.WriteLine("记录总数:" + obj); // 执行指定的SQL语句并返回一个数据表 DataTable dt = SqlserverHelper.ExecuteDataTable("select * from [User] where UserName="admin""); foreach (DataRow row in dt.Rows) { Console.WriteLine("用户名:" + row["UserName"] + " 密码:" + row["Password"]); } // 执行指定的SQL语句并返回一个DataReader对象 SqlDataReader reader = SqlserverHelper.ExecuteReader("select * from [User]"); while (reader.Read()) { Console.WriteLine("用户名:" + reader["UserName"] + " 密码:" + reader["Password"]); } reader.Close(); // 向指定的表中插入一条记录,并返回新记录的ID值(如果有自增字段) DictionaryView Codefields = new Dictionary (); fields.Add("UserName", "test"); fields.Add("Password", "123456"); int newId = SqlserverHelper.Insert("User", fields); Console.WriteLine("新记录的ID值:" + newId); // 更新指定表中满足条件的记录,并返回受影响的行数 Dictionary conditions = new Dictionary (); conditions.Add("UserName", "test"); Dictionary newFields = new Dictionary (); newFields.Add("Password", "654321"); int updateCount = SqlserverHelper.Update("User", newFields, conditions); Console.WriteLine("更新记录的数量:" + updateCount); // 删除指定表中满足条件的记录,并返回受影响的行数 Dictionary delConditions = new Dictionary (); delConditions.Add("UserName", "test"); int delCount = SqlserverHelper.Delete("User", delConditions); Console.WriteLine("删除记录的数量:" + delCount); Console.ReadKey(); }
关键词:
C#写一套最全的SQL server帮助类(包括增删改查)
秦都区吴办吴家堡社区新时代文明实践站开展党建引领 “童”行同乐活动
热点!110万的比亚迪大把人买!仰望U8预售48小时:订单已超1.3万份
NVIDIA大失所望:RTX 4070卖崩了!AMD成市场赢家
天天资讯:用户自驾突发紧急情况!最后用华为P60 Pro获救:用一次续一生
五一假期十大热门城市:看看有你想去的吗?
升空后人工引爆!下次再来 成功三分之一的Starship 新动态
长安C401将被称为长安辛特克斯动力来自马自达1.6 天天微资讯
JS中的进程和线程-动态
linux下查看文件内容工具发布啦!
04 设置工作模式与环境(下)收集信息
天天速讯:全国首单绿色及能源保供双主题ABS在深交所完成发行
环球速讯:园企智推官“我为企业代言”推介大赛开启
全球通讯!苹果版余额宝收益4%?我可一点都不羡慕 背后有猫腻
世界视讯!你信吗?宝马MINI再道歉:吃冰淇淋的“老外”是同事 求宽容2位小姐姐
1499元起!荣耀X50i手机发布:标配256GB超大存储
环球快资讯:我国天文学家为银河系精确“称重”:约为8050亿个太阳质量
高速上惊现喷气式汽车 车尾一路滚滚浓烟 涡轮增压器坏了
海南省白沙县2023-04-20 12:36发布雷电黄色预警
MYSQL---主从同步概述与配置
Docker基础知识和命令使用入门
网络流的C++代码实现与过程讲解
每日关注!南昌大学举办潘际銮教育思想研讨会
伛偻提携往来而不绝者滁人游也翻译_伛偻提携_焦点热文
嫁入豪门?前世界首富目不转睛盯着谷爱凌,搂着爱凌合影很兴奋
绿色转型湾区“债”持续——中央结算公司2023年二季度债市研判六人谈举行
“星级酒店”旅游专列今日发车:双人大床房 24小时管家
暗黑4再次公测
当前速读:上海一商场特斯拉展车喇叭响不停 销售员束手无策 路人纷纷堵耳
华为实现自主可控的MetaERP研发:我们已经突破封锁 我们活了下来-环球速看
环球即时:德国男单全军覆没!世界冠军1:3输球,世界第六现场脱衣服换球服
双鱼座今日运势_双鱼座男生讨厌女生_今日看点
四大证券报精华摘要:4月21日
仰望U8市区上路 体型硕大:一旁70万的途锐秒变高尔夫
马斯克不止星舰发射失败 特斯拉暴跌近10%:市值一夜蒸发3780亿元
全球视讯!剧情够毁灭!漫威宣布《复仇5》 明年开拍:国人不爱看 不符合文化观?
世界速递!2399元起加量还减价!小米平板6 Pro今日首销:升级神U骁龙8+
探访风波中的宝马mini展台
读SQL进阶教程笔记13_SQL中的分组和层级
笔趣阁校花的贴身高手小说_笔趣阁校花的贴身高手 每日简讯
超预期!世界打开中国经济“一季报”的正确姿势
北京军地检察机关推动监管部门加强保护管理
【环球新要闻】提前感知这次“五一”假期有多火:酒店预订量涨4倍、淄博订单涨20倍
KMeans_世界观热点
全球热点!Rust编程语言入门之Rust的面向对象编程特性
【Visual Leak Detector】源码下载 世界热讯
【全球报资讯】手机系统相册在哪里(手机系统相册在哪里打开)
世界今日讯!邓紫棋的祝福
4nm Zen4!宏碁全球抢发AMD锐龙9 7940H笔记本:配个RTX 4050 焦点快报
环球热文:苹果最强对手来了!小米13 Ultra首销:5999元买安卓影像之王
马斯克准备了7年的超级火箭炸了!但员工们乐得开起了香槟
世界百事通!迪士尼真人版《小美人鱼》新写真出炉:黑美人鱼海底双手托腮
五一民宿预订现涨价退单潮 房东找奇葩理由:破产不干了
ST时万(600241)2023年一季报财务简析:净利润减48.39%
当前最新:用户侧100千瓦时锌溴液流电池系统并网运行
全球观天下!上市险企财险2022年年报:综合费用率均有下降
一带一路、中字头个股午后反弹 西藏天路反包涨停
女生戒指戴法的含义图解_女生戒指戴法的含义|速读
农村厕所要怎么改造
世界今热点:三只小山羊创始人杨玉勇:专业、专注、全力以赴,成就羊绒大衣专家
已致270人死亡,2600余人受伤!中国驻苏丹使馆:请尽快登记! 今日播报
21世纪仅有7次!罕见日全环食今天来了|最新
天天看点:LCD面板行业复苏,产能向大陆集中,TCL科技等龙头企业有望受益
世界实时:次新股回调多少可以买入?如何买入?
jrsnba直播吧 a直播吧 焦点精选
世界读书日|重读雷锋日记 弘扬雷锋精神 天天新视野
vivo X Fold2:更易用的折叠屏旗舰 “减重不减质”-环球热讯
亮相第十三届中国轻工业信息化大会,360数字中枢引瞩目-全球热门
一季度我国经济发展实现良好开局_全球微动态
霍勒迪:赛前告诉字母哥会为他拿下G2 我们大家都支持他-精选
记录.Net部署Docker-v指令使用
关于Java中对象的向上转型和向下转型
启明星辰(002439.SZ):预计一季度净亏损6300万元至6800万元 同比减亏
每日热点:双喜!巴萨第一次正式报价梅西:砸锅卖铁筹2亿,第8座金球在招手
微头条丨马斯克SpaceX星舰发射失败:惨烈爆炸 当空“放烟花”
人类最强火箭星舰爆炸 马斯克失落 SpaceX回应:祝贺团队完成首次飞行测试
台北101大楼遭雷击罕见瞬间曝光:紫光乍现照亮夜空_天天要闻
《灌篮高手》热映 你为青春补票吗?80/90后熬夜冲向电影院
马斯克SpaceX星舰发射失败 爆炸瞬间动图:一团火球灰飞烟灭 世界快报
全球今热点:金基集团总经理徐谱曾在龙湖任职多年 跳槽频繁但职位挺稳定
[游戏] EasyGame C++
今日最新!【前端可视化】SVG 学习知识点
平稳运行、动能积蓄——透视首季工业经济数据
和刘云天直播与前妻合体,拿郭德纲题字扇亮相,曹云金是懂流量的-热推荐
重庆公积金缴费基数2023多少 缴存基数上限如何计算?
比RTX 4080小一半!RTX 4000 SFF半高卡开卖:万元价格、功耗仅70瓦
资讯推荐:不玩不行?厂商力挺:黑人女主的游戏正越来越多
5999元起!vivo发布上下折叠屏手机X Flip:魔幻3寸外屏、妹纸最爱
聚焦水利,河南再设百亿产业基金 全球独家
微信小程序学习笔记 播报
无凭证条件下的权限获取
快讯:C++ 结构体对齐
债市日报:4月20日
vivo X Flip登场:航空级铝合金中框 3英寸超大外屏
全球首个12.1寸7:5大屏 vivo Pad2屏幕大升级:拒绝低成本_全球观点
【世界独家】最强火箭SpaceX星舰今晚重新发射!现场大雾弥漫:又要延期?
快播:首发2399元起 vivo Pad2平板发布:娱乐与生产力双旗舰
时隔10年 新一代PC硬件杀手:《孤岛危机4》来了
马布里发微博:篮球之神是公平的
安装到c盘和d盘的区别 c盘和d盘的区别