C#写一套最全的SQL server帮助类(包括增删改查)

这篇具有很好参考价值的文章主要介绍了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的帮助类,包括增删改查等操作,并且带有详细注释。

C#写一套最全的SQL server帮助类(包括增删改查)C#写一套最全的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=密码";  // 数据库连接字符串

    /// <summary>
    /// 执行指定的SQL语句并返回受影响的行数
    /// </summary>
    /// <param name="sql">要执行的SQL语句</param>
    /// <returns>受影响的行数</returns>
    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;         // 返回受影响的行数
        }
    }

    /// <summary>
    /// 执行指定的SQL语句并返回查询结果的第一行第一列
    /// </summary>
    /// <param name="sql">要执行的SQL语句</param>
    /// <returns>查询结果的第一行第一列</returns>
    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;           // 返回查询结果的第一行第一列
        }
    }

    /// <summary>
    /// 执行指定的SQL语句并返回一个数据表
    /// </summary>
    /// <param name="sql">要执行的SQL语句</param>
    /// <returns>查询结果的数据表</returns>
    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];  // 返回查询结果的数据表
        }
    }

    /// <summary>
    /// 执行指定的SQL语句并返回一个DataReader对象
    /// </summary>
    /// <param name="sql">要执行的SQL语句</param>
    /// <returns>查询结果的DataReader对象</returns>
    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对象
    }

    /// <summary>
    /// 向指定的表中插入一条记录,并返回新记录的ID值(如果有自增字段)
    /// </summary>
    /// <param name="tableName">要插入记录的表名称</param>
    /// <param name="fields">要插入记录的字段和值的集合</param>
    /// <returns>新记录的ID值(如果有自增字段)</returns>
    public static int Insert(string tableName, Dictionary<string, object> fields)
    {
        string sql = "insert into " + tableName + "(";
        string values = ") values (";
        SqlCommand cmd = new SqlCommand();
        foreach (KeyValuePair<string, object> 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值
    }

    /// <summary>
    /// 更新指定表中满足条件的记录,并返回受影响的行数
    /// </summary>
    /// <param name="tableName">要更新记录的表名称</param>
    /// <param name="fields">要更新的字段和值的集合</param>
    /// <param name="conditions">更新条件的字段和值的集合</param>
    /// <returns>受影响的行数</returns>
    public static int Update(string tableName, Dictionary<string, object> fields, Dictionary<string, object> conditions)
    {
        string sql = "update " + tableName + " set ";
        SqlCommand cmd = new SqlCommand();
        foreach (KeyValuePair<string, object> 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<string, object> 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;              // 返回受影响的行数
    }

    /// <summary>
    /// 删除指定表中满足条件的记录,并返回受影响的行数
    /// </summary>
    /// <param name="tableName">要删除记录的表名称</param>
    /// <param name="conditions">删除条件的字段和值的集合</param>
    /// <returns>受影响的行数</returns>
    public static int Delete(string tableName, Dictionary<string, object> conditions)
    {
        string sql = "delete from " + tableName;
        SqlCommand cmd = new SqlCommand();
        if (conditions != null && conditions.Count > 0)
        {
            sql += " where ";
            foreach (KeyValuePair<string, object> 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;              // 返回受影响的行数
    }
}
View Code

二、每一个方法的调用。

在这个示例中,我首先调用ExecuteNonQuery方法向数据库中插入一条记录,并输出插入的行数;
然后调用ExecuteScalar方法查询了数据库中记录的总数,并输出结果;
接下来,我使用ExecuteDataTable方法查询了符合条件的记录,并通过遍历数据表的方式输出所有记录的信息。
然后使用ExecuteReader方法查询了所有的记录,并通过遍历DataReader对象的方式输出所有记录的信息。
请注意,在使用完DataReader对象后必须调用其Close()方法关闭它。
接着使用Insert方法向数据库中插入了一条记录,并获得了新记录的ID值(如果有自增字段);
还使用Update方法更新了符合条件的记录,并输出了更新的行数;
最后,使用Delete方法删除了符合条件的记录,并输出了删除的行数。
当然,这些示例只是演示了如何使用SqlHelper类中的每一个方法。
在实际应用中,将根据具体的需求来调用它们并处理查询结果。

C#写一套最全的SQL server帮助类(包括增删改查)C#写一套最全的SQL server帮助类(包括增删改查)
    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值(如果有自增字段)
            Dictionary<string, object> fields = new Dictionary<string, object>();
            fields.Add("UserName", "test");
            fields.Add("Password", "123456");
            int newId = SqlserverHelper.Insert("User", fields);
            Console.WriteLine("新记录的ID值:" + newId);

            // 更新指定表中满足条件的记录,并返回受影响的行数
            Dictionary<string, object> conditions = new Dictionary<string, object>();
            conditions.Add("UserName", "test");
            Dictionary<string, object> newFields = new Dictionary<string, object>();
            newFields.Add("Password", "654321");
            int updateCount = SqlserverHelper.Update("User", newFields, conditions);
            Console.WriteLine("更新记录的数量:" + updateCount);

            // 删除指定表中满足条件的记录,并返回受影响的行数
            Dictionary<string, object> delConditions = new Dictionary<string, object>();
            delConditions.Add("UserName", "test");
            int delCount = SqlserverHelper.Delete("User", delConditions);
            Console.WriteLine("删除记录的数量:" + delCount);

            Console.ReadKey();
        }
View Code

 文章来源地址https://www.toymoban.com/news/detail-420181.html

到了这里,关于C#写一套最全的SQL server帮助类(包括增删改查)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MFC连接sql server的编程实现增删改查(完整版)

    本次试验是本来是一次简单的sql做界面的任务,本来我想的是从网上找一份java的代码,直接搞出来就结束了,但是我曾在大一下整过一段时间mfc连接mysql,让我决定整一个mfc工程,诚然mfc工程基本上没人用(相比于java),所以很多内容找不到都是自己蒙出来的,写这篇博客留

    2024年02月04日
    浏览(72)
  • JDBC如何连接SQL Server数据库实现增删改查

    目录 一、连接前准备  1. 环境配置  2. 下载JAR包 3. 添加环境变量 4. 导入JDBC包  二、连接SQL Server  三、实现增删改查 1. 查询数据 2. 添加数据 3. 修改数据 4. 删除数据 5. 拓展 JDBC的全称是Java数据库连接 (Java DataBase Connectivity) ,应用程序通过JDBC连接到数据库,使用SQL语句对数

    2024年02月03日
    浏览(67)
  • SQL Server基础 第三章 数据表基本操作(增删改查,不允许保存更改异常!)

    往表里插数据我们现在有两种方式 第一种是编辑直接修改,第二种是通过查询来修改数据 两种方法的区别 第一种更直接,如果数据量小那么直接改就好了,那如果数据量稍微庞大我们就需要用新建查询来进行表内容的修改了!!!!!!! 只需要新建查询,然后新的查询文

    2023年04月26日
    浏览(53)
  • 【C#】使用C#连接SQL Server

    1. 连接数据库服务器 这里我使用的是SQL Server 身份验证(也可使用windows 身份验证) 账户信息如下: 登录名: sa 密码: mima (输入时自动隐藏) 2. 建立数据库和表 这里我的数据库信息如下: 服务器名: HG66MSSQLSERVER01 数据库名: DataBase01 表名: Table_1 三个属性分别为: I

    2023年04月12日
    浏览(39)
  • SQL Server用户定义的函数(UDF)使用详解

    与编程语言中的函数一样,SQL Server 用户定义函数是接受参数、执行操作(如复杂计算)并将该操作的结果作为值返回的例程。返回值可以是单个标量值,也可以是结果集。 模块化编程。可以创建一次函数,将其存储在数据库中,并在程序中调用它任意次数。可以独立于程序

    2023年04月12日
    浏览(46)
  • un630:如何在IDEA上写出一套完整的增删改查

        在使用idea之初,有的道友会对idea的使用有疑问,比如:idea和eclipse有什么不同,写增删改查的时候应该如何去写,那么今天,小编就带大家一起写一遍,希望对大家有所帮助。     需要的工具是idea,以authuser的增删改查为例。接下来,请和我一起操作吧! 一、在数据库

    2024年02月09日
    浏览(41)
  • Windows命令创建用户,支持Windows Server或者Win10所有版本,可以在命令中实现自定义用户最全参数,自己运维经验,全部可用有效

    使用PowerShell创建用户可以带上更多的参数,缺点就是用户密码只能设置一样的。 1、设置用户统一的密码 $Password = Read-Host -AsSecureString 注意 :执行这条命令后要输入密码!!! 2、新建用户,可以附带用户详细参数 New-LocalUser \\\"用户名\\\" -Password $Password -FullName \\\"用户全名\\\" -Descr

    2024年02月11日
    浏览(51)
  • Linux源码解读系列是一套深入剖析Linux内核源码的教程,旨在帮助读者理解Linux操作系统的底层原理和工作机制

    Linux源码解读系列是一套深入剖析Linux内核源码的教程,旨在帮助读者理解Linux操作系统的底层原理和工作机制。该系列教程从Linux内核的各个模块入手,逐一分析其源码实现,并结合实际应用场景进行讲解。通过学习本系列,读者可以深入了解Linux操作系统的底层机制,掌握

    2024年01月21日
    浏览(50)
  • 如何将Excel数据导入到MS SQL Server已定义的数据表中

    1. 前提:已经在SQL Server中定义了所要导入数据的表(如stock,salvaging和out_stock三张表)的结构。 2. 如图,选择要导入数据的数据库(例如dlqx数据库),右键-任务-导入数据。  2. 进入向导后,点击“下一步”。  3. (1)选择 数据源 ,这里选择Microsoft Excel,如图所示 (2)点击

    2024年02月04日
    浏览(44)
  • 【数据类型】C#和Sql Server、Mysql、Oracle等常见数据库的数据类型对应关系

    🏆🏆这是小5写的第二篇城市领跑者文章,一起为所在城市领跑助力吧! 🏆🏆在实际项目中,不管是用C#后端编程语言也好,还是Java后端编程语言,都可能会用到不同端的数据类型转换和对应关系 在 C# 和 SQL Server 之间,以下是一些最常用的数据类型对应关系: 编号 C#数据

    2024年02月11日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包