实战技巧

之:如何优雅的使用数据库
——封装数据库工具类SqlHelper。

安装SQL数据库教程


目录


一、连接数据库前的必要操作

1、设置数据库账户和密码

已经设置过的同学可以略过此步
步骤一:打开SQL Server Management 选择 “windows身份验证” 连接SqlServer数据库

连接数据库

步骤二:进入 “安全性”-“登录名”-“sa” 填写密码并确认密码,点击“确定”。修改后即可选择“SQL server身份验证”使用登录名和密码里连接数据库

修改密码

2、引入数据库连接库

已经导入库的同学可以略过此步

步骤一:打开vs 进入“项目”-“管理NuGet程序包”

管理NuGet程序包

步骤二:在“浏览”里搜索“Sql”选择所示包安装,由于我已经安装过了所以这里提示的是卸载。

安装SqlClient
做完以上步骤之后我们就可以开始连接数据库

二、查询数据

1.数据库连接字符串

数据库连接字符串相当如打开数据库的钥匙,其格式为:

Server=服务器名; Database=数据库名; uid = 用户名; pwd = 密码; Trusted_Connection = False;

其中,如果是本机运行的Sqlserver,Server可以使用“.”,“localhost”,“127.0.0.1”

Trusted_Connection=False;不采用信任连接方式(也即不采用Windows验证方式),而改由SQL Server 2000验证方式

假设我的数据库安装在本机,需要使用的数据库为Session1,用户为sa,密码为qwer,则数据库连接字符串就可以设置为:
Server = localhost; Database = Session1; uid = sa; pwd = qwer; Trusted_Connection = False;

2、连接数据库

SqlConnection con = new SqlConnection("Server = localhost; Database = Session1; uid = sa; pwd = qwer; Trusted_Connection = False;"))
con.Open();    
                

3.查询数据

步骤一:确定查询语句,在SQL Server Management验证查询语句
查询数据
步骤二:将查询语句写入代码并展示查询结果

using (SqlConnection con = new SqlConnection("Server = localhost; Database = Session1; uid = sa; pwd = qwer; Trusted_Connection = False;"))
            {
                con.Open();
                SqlCommand cmd = new SqlCommand("select * from Staff where LoginID = 1;", con);
                SqlDataAdapter adapter = new SqlDataAdapter(cmd);
                DataSet ds = new DataSet();
                adapter.Fill(ds);
                //使用DataTable来接收查询结果
                DataTable dt = ds.Tables[0];
                DataRow dr = dt.Rows[0];
                System.Console.WriteLine(dr["FirstName"]);
                //验证查询结果
            }

步骤三:验证查询结果
查询结果
由此我们便完成了一次完整的数据库查询,但是就这样结束了吗?

No!大No特No!这个方法只能说是勉强够用,完全不够优雅,下面我们将它美化一下,让人一看就觉得眼前一亮。

三、封装数据库工具类SqlHelper

大多数情况下我们从数据库增删改查数据的操作肯定不是一次两次的,所以将每次连接数据库都重写一遍连接代码是非常不明智的,所以我们需要将数据库连接的操作封装成一个工具类,这样每次连接只需要调用一下这个类就可以了。

1、将数据库连接字符串写入App.config配置文件

为了程序的严谨性和方便后期修改管理,我们一般把数据库连接字符串一类的都放在配置文件“App.config”中:
App.config
在“App.config”中添加数据库连接字符串
将连接字符串储存在App.config中不是唯一解决方法,实际开发根据情况而定

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
	<connectionStrings>
		<add name="ConStr" connectionString="Server = localhost; Database = Session1; uid = sa; pwd = qwer; Trusted_Connection = False;"/>
	</connectionStrings>
    <startup> 
        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
    </startup>
</configuration>

然后我们便可以在程序中调用配置好的数据库字符串了,后期修改了数据库也可以在配置文件中更改代码,方便维护。

2、将前面的代码封装SqlHelper类

步骤一:在项目中创建一个工具文件夹“Util”,然后在“Util”文件夹中创建一个“SqlHelper”的类。

SqlHelper

步骤二:将代码封装成方类,并完善。

第一个方法用于“查”,返回查询的数据,第二个方法用于“增”,“删”,“改”,返回受影响的行数

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
//引用数据库连接工具库
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace OlymmpicManagementSystem.Util
{
    public class SqlHelper
    {
        public static string ConStr { get; set; }//数据库连接字符串
        
        public static DataTable ExecuteTable(string cmdStr)
        {
            //获取数据表的方法,返回一个DataTable
            using (SqlConnection con = new SqlConnection(ConStr))//using自动释放
            {
                con.Open();
                //建立连接
                SqlCommand cmd = new SqlCommand(cmdStr, con);
                SqlDataAdapter adapter = new SqlDataAdapter(cmd);
                DataSet ds = new DataSet();
                adapter.Fill(ds);
                return ds.Tables[0];
            }
        }
        public static int ExecuteNonQuery(string cmdStr)
        {
        	//修改数据表的方法,返回受影响行数
            using (SqlConnection con = new SqlConnection(ConStr))
            {
                con.Open();
                SqlCommand cmd = new SqlCommand(cmdStr, con);
                int rows = cmd.ExecuteNonQuery();
                if (rows <= 0)
                {
                    throw new Exception("Database operation failed");
                    //操作失败抛出异常
                }
                return rows;
            }
        }

    }
}

3、在Program.cs中初始化数据连接字符串。

步骤一:右键:“引用”-“添加引用”打开“引用管理器”,选择“程序集”搜索“Configuration”添加到引用。
引用

步骤二:打开Program.cs,将App.config文件中的数据库连接字符串传给SqlHelper中的常量ConStr。
一定不要忘记using OlymmpicManagementSystem.Util;,不然会SqlHelper.ConStr会报错

using OlymmpicManagementSystem.Util;
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace OlymmpicManagementSystem
{
    internal static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main()
        {
            SqlHelper.ConStr = ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString;
            //初始化数据库连接字符串
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Main());
        }
    }
}

4、在主程序中调用SqlHelper并验证查询结果

步骤一:在主程序中删除前面的代码,调用SqlHelper
一定不要忘记using OlymmpicManagementSystem.Util;,不然会SqlHelper.ExecuteTable会报错

DataTable dataTable = SqlHelper.ExecuteTable("select * from Staff where LoginID = 1;");
DataRow dataRow = dataTable.Rows[0];
string firstName = dataRow["FirstName"].ToString();
string lastName = dataRow["LastName"].ToString();
System.Console.WriteLine(firstName+" "+lastName);

步骤二:验证结果
查询

运行结果
轻松搞定!!!


总结

以上就是今天要分享的内容,本文仅仅简单介绍了如何制作一个SqlHelper工具类的,方法肯定不止一种,但是此方法也算是比较优雅的了。建议在找到其他更好的方法前熟练掌握,毕竟这个也是十分重要的一个知识点,在开发过程中应该做到倒背如如丝般顺滑,也欢迎你分享你觉得非常优雅的方法。步骤看起来略多,是为了照顾如同我一样初学状态的同学,笔记比较详细,实际内容别没有多少。谢谢观看,欢迎留言交流。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐