首页 > 数据库 >C#中的数据库访问类DBHelper

C#中的数据库访问类DBHelper

时间:2024-01-14 10:05:09浏览次数:30  
标签:string pms C# 数据库 DBHelper sql new dt SqlParameter

1、在配置文件中添加连接字符串

首先在配置文件中的<configuration>中加入数据库连接字符串,配置文件后缀为.config,例如:App.config

<connectionStrings>
        <add name="你给此条链接起的名字,随便起,访问的时候可以用。比如:AAA" connectionString="Data Source=你的服务器地址;Initial Catalog=你要连接的数据库名字;Persist Security Info=True;User ID=数据库用户名;Password=数据库密码" providerName="System.Data.SqlClient" />
    </connectionStrings>

 

 

2、新建一个帮助类 

如果你只有一个类库,那就直接在你的类库新建一个类,名为“DBHelper”(随意起),如果你用三层,那就还有一个BLL业务逻辑层和一个DAL数据访问层,把DBHelper类放在DAL数据访问层中.

C#中的数据库访问类DBHelper_sql

3、在帮助类中添加代码

1、定义一个变量获取配置文件中的数据库连接字符串

string cnotallow= ConfigurationManager.ConnectionStrings["你刚刚自定义的AAA"].ConnectionString.ToString();

 2、开始写你需要的方法,举例两个最基本的最常用的

//执行增、删、改的方法:ExecuteNonQuery,返回受影响的行数
        public int ExecuteNonQuery(string sql, params SqlParameter[] pms)
        {
            using (SqlConnection conn = new SqlConnection(connstr))
            {
                using (SqlCommand cmd = new SqlCommand(sql, conn))
                {
                    if (pms != null)
                    {
                        cmd.Parameters.AddRange(pms);
                    }
                    conn.Open();
                    return cmd.ExecuteNonQuery();
                }
            }
        }
        //将查出的数据装到table里,返回一个DataTable
        public DataTable GetDatatableData(string sql, params SqlParameter[] pms)
        {
            DataTable dt = new DataTable();

            using (SqlDataAdapter adapter = new SqlDataAdapter(sql, connstr))
            {
                if (pms != null)
                {
                    adapter.SelectCommand.Parameters.AddRange(pms);
                }
                adapter.Fill(dt);
            }
            return dt;
        }

做一个讲解,params SqlParameter[] pms是用来接收SqlParameter传来的参数的,也可以只传一个sql语句,也可以参数化,建议是参数化防止被SQL注入

4、调用方法

//首先实例化DBHelper
        DBHelper dbhelper = new DBHelper();
        //定义一个查询的方法
        public void GetStuName()
        {
            string stuid = "12345";//可以是从别的地方获取到的id
            //定义SQL语句,这里用SqlParameter参数化防止sql注入,比较安全
            //注意:使用SqlParameter需要using System.Data.SqlClient;
            string sql = "select StuId,StuName,StuSex,StuAge from Student where StuId =@ID";
            SqlParameter[] ps =
            {
                new SqlParameter("@ID",stuid)
            };
            //定义一个DataTable用来存放查出来的结果,这里调用DBHelper里的GetDatatableData方法
            DataTable dt = dbhelper.GetDatatableData(sql, ps);
            //如果你有数据控件可以直接将控件的数据源指定为这个dt,这样数据就会直接在控件中显示
            //也可以取出dt中的某个值显示在页面上,比如这里我取出第一行数据对应的学生的性别
            string AnyoneSex = dt.Rows[0]["StuSex"].ToString();
            //输出弹窗显示第一行数据对应的学生的性别,也可以放到页面上
            MessageBox.Show(AnyoneSex);
        }
        //定义一个增删改的方法,都是返回受影响的行数,所以通用,这里用添加数据
        public void InsertData()
        {
            string name = "张三";
            string sex = "男";
            string age = "18";
            string sql = "insert into Student(StuName,StuSex,StuAge) values(@StuName,@StuSex,@StuAge)";
            SqlParameter[] ps =
            {
                new SqlParameter("@StuName",name),
                new SqlParameter("@StuName",sex),
                new SqlParameter("@StuName",age)
            };
            //然后传到dbhelper中的ExecuteNonQuery,定义一个int类型的变量用来接收返回的受影响的行数
            int num = dbhelper.ExecuteNonQuery(sql, ps);
            //数据有变化则说明插入成功
            if (num > 0)
            {
                MessageBox.Show("插入成功");
            }
        }

转载请注明出处,谢谢

标签:string,pms,C#,数据库,DBHelper,sql,new,dt,SqlParameter
From: https://blog.51cto.com/u_16371710/9238077

相关文章

  • C#调用webapi发送带json参数的post请求
    嗯。。很久不更新,因为跳槽新公司了,要学的东西太多太忙了。也没时间记录,今天又写了一个C#调用webapi发送带json参数的post请求拿数据的方法,所以来到这里记录一下///<paramname="url">请求地址</param>///<paramname="jsonParas">请求体</param>///<paramnam......
  • C#将从数据库查处的table格式的数据转为json
    这里的代码是封装好的类,将Datatable作为参数传进来即可解析出json格式的数据,看代码publicstaticstringToJson(DataTabledt){intcount=dt.Rows.Count;//将DataTable格式的数据转换成json格式StringBuilderjsonBuilder=ne......
  • C#实现串口通讯的方法
    帖子只用于记录本人的学习记录,算是给未来的自己出一份傻瓜式教学。 在C#语言上,一般上位机是由Winform开发,也有WPF,但是我不会WPF上位机无非就是发送数据与接收数据,可以使用C#的SerialPort方法winform自带SerialPort控件,可以将此控件直接拖到页面上,然后实例化该控件,也可以直接实例化......
  • C#中substring ()的用法
    String.SubString(int index,int length)  index:开始位置,从0开始   length:你要取的子字符串的长度  示例:usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespacestr_sub{classProgram{staticvoidMain(string[]args){strin......
  • C#常用工具安装方法及资源整理
    1、GitGit下载地址Git安装教程2、SQLServer2019下载地址安装教程3、VisualStudio2022下载地址安装教程4、TortoiseGit(x64)  2.13.0.1中文版下载地址安装教程5、sqlserver2014下载及安装教程......
  • Helm概述,安装,部署,chart模板使用
    Helm概述Helm是一个用于管理Kubernetes应用程序的工具,它提供了一个简单而有效的方式来定义、安装和部署应用程序。Helm通过使用可重复使用的模板(称为Charts)来描述应用程序的Kubernetes资源,并提供了一个命令行界面来管理这些Charts。Helm的核心概念包括:Chart:Chart是Helm的基本单元,它......
  • React-hook-form-mui(一):基本使用
    前言在项目开发中,我们选择了React+MUI作为技术栈。在使用MUI构建form表单时,我们发现并没有与antd类似的表单验证功能,于是我们选择了MUI推荐使用的react-hook-form-mui库去进行验证。但是发现网上关于这个库的使用方法和demo比较少且比较简单,并没有复杂的表单验证的demo。因此本文及......
  • 图解数据库左连接、右连接、内连接、外连接、全连接
    图解数据库左连接、右连接、内连接、外连接、全连接 1.前言在日常的数据库增删改查任务中,由于数据的规范设计,数据通常不集中在同一张表里,所以经常会涉及到多表的数据查询,多表数据查询需要表之间的连接,而表间连接方式有很多,下面就针对各种表连接方式进行介绍。在介绍之前,为......
  • Auto CAD
    快捷命令 L直线M移动C圆EL椭圆XL射线轴线RO旋转E删除H填充TR修剪EX延伸PO点S拉伸U返回DDI直径标注DAN角度标注OP系统选项设置A圆弧T多行文字B块定义I块插入W定义块文件CO复制MI镜像O偏移F倒直角或圆角D标注样式DLI线......
  • .NET中轻松应用SQLite:零配置数据库引擎的完美指南
     SQLite是一种轻量级的嵌入式数据库引擎,它在.NET中被广泛使用。SQLite是一个零配置的数据库引擎,不需要服务器,可以直接在应用程序中使用。下面是一个简单的示例,演示如何在.NET中使用SQLite,并提供了常见的查询、增加、修改和删除功能。首先,你需要在项目中安装 System.D......