哈喽,你好啊,我是雷工!
前面学习了C#操作SQLServer数据库数据的增编削查,
《C#知识|通过ADO.NET实现运用程序对数据库的增、删、改操作。》

个中实现的过程中有很多代码是重复的,此时作为高阶程序员为了使代码更优雅,避免重复,
从而要考虑代码的复用技能,针对此案例中代码重复情形,结合项目中对数据库的操作还是挺普遍的,
为了便于其他项目也能够复用该方法,可以将数据访问写成一个通用的类。
01 新建类
新添加一个类,命名为SQLHelper.cs
02 添加引用
为了使数据库信息可配置,而不是写去世的,可以在App.config内写干系信息,
通过该办法实现自由配置,须要先添加引用
找到System.Configuration,然后点击【确定】按钮。
然后在新建的类中引入命名空间
using System.Configuration;
03 App.config
创建任何项目都会有一个App.config
在App.config添加个节点
添加代码如下:
<connectionStrings><add name="connString" connectionString="Server=.;DataBase=LGAccountManagentDB;Uid=sa;Pwd=admin@123"/></connectionStrings>
个中标红部分为复制的数据库干系信息。
添加位置如下:
然后在新建的SQLHelper类中添加如下代码,即可调用App.config中的数据库信息。
private static string connString = ConfigurationManager.ConnectionStrings["connString"].ToString();
04 封装类
总结:封装变革的,抽取不变的,变革的作为参数,不变的作为方法体!
封装完的增编削类代码为:
//同样引用如下命名空间using System.Data;using System.Data.SqlClient;using System.Configuration;namespace LeiGongNotes2{/// <summary>/// 通用数据访问类/// </summary>public class SQLHelper{//private static string connString = "Server=.;DataBase=LGAccountManagentDB;Uid=sa;Pwd=admin@123";private static string connString = ConfigurationManager.ConnectionStrings["connString"].ToString();/// <summary>/// 实行增编削操作的方法/// </summary>/// <param name="sql"></param>/// <returns></returns>public static int Update(string sql){//[1]、创建数据库连接工具SqlConnection conn = new SqlConnection(connString);//[2]、创建Command工具SqlCommand cmd = new SqlCommand(sql, conn);//[3]、打开数据库连接conn.Open();//[4]、实行操作(下面的方法,只能用于实行insert、update、delete操作,不能实行delect操作)int result = cmd.ExecuteNonQuery();//[5]、关闭连接conn.Close();return result;}}}
05 用访问类访问数据库
5.1、首先在Program.cs中写个方法并调用
using System;namespace LeiGongNotes2{internal class Program{static void Main(string[] args){Console.WriteLine("欢迎大家关注【雷工条记】!
");Console.WriteLine("--------------------------");ExecuteInsertByHelper();Console.ReadLine();}static void ExecuteInsertByHelper(){//定义SQL语句string sql = "insert into Account(AccountName,AccountContent,originality,TypeId)";sql += " values('雷工条记1','分享数据库知识|C#知识|上位机知识|组态软件|触摸屏|数字孪生|人生感悟',206,12),";sql += "('小李食代1','分享家常菜|减脂餐|事情便当|营养餐|等康健食谱',199,11)";int result = SQLHelper.Update(sql);Console.WriteLine(result);}}}
5.2、实行结果:
解释成功将SQL语句的两条数据插入到了数据库,
06 优化数据访问类实际开拓中,数据访问可能会产生非常,常日须要在代码中加入try{}catch{},
当运行非常时会抛出非常信息。
优化后代码如下:
public static int Update(string sql){SqlConnection conn = new SqlConnection(connString);SqlCommand cmd = new SqlCommand(sql, conn);try{conn.Open();return cmd.ExecuteNonQuery();}catch (Exception ex){//此处可以捕获ex工具干系信息,然后保存到日志文件中throw new Exception("实行Update发生非常:" + ex.Message);}finally //此处为无论是否发生非常都要实行的代码{conn.Close();}}
07 后记
以上为对增编削方法的精简,精简后的代码封装了重复部分,让代码整体简洁优雅了很多。
接下来连续学习对查询两个方法的封装。
有在学习同样内容的同学可以点赞+关注+在看,一起学习进步。