C#如何实现对sql server数据库的增删改查
作者:我只是一只小小鸟 发布时间:2024-01-18 06:49:09
标签:C#,sql,server,增删改查
一个专门实现sql server数据库的增删改查,以及将查询的结果返回成表格等功能,分享代码如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;//第一步:引用与sql相关的命名空间
using System.Data;//引用表的命名空间
//行注释 ///段落注释
/// <summary>
///第二步: 把命名空间删掉,使得我们在以后的开发中不用去创建一个sqlhelper类的对象和引用它的命名空间。实现直接调用
/// </summary>
//第三步:在class前面加上一个public 实现我们可以在dal的任何地方中去调用它。
//public 叫公共类 它的访问权限是最大的。 如果在class前面加上了它的话,那么这个类我们可以在当前的类库中任意调用。
public class SqlHelper
{
//第四步:我们想要直接调用sqlHelper类,删除命名空间是不够的,我们还要把里面的方法和字段全部设置为静态。
public static string connstr = "server=.;uid=sa;pwd=sa;database=rj1301";//公共的静态的 连接字符串
public static int ExecuteScalar(string cmdText, params SqlParameter[] pms)
{
//params:不限长度的数组
//第一步:创建数据库对象连接
SqlConnection conn = new SqlConnection(connstr);
//第二步:打开数据库
conn.Open();
//第三步:创建数据库命令对象和数据库查询语句
SqlCommand cmd = new SqlCommand(cmdText, conn);
//第四步:创建参数对象
//cmd.Parameters.Add(pms);//如果我们在这里直接放入pms数组,那么cmd添加进去的都是SqlParameter,而不是具体的参数。
// int[] ii = new int[5] { 1,2,3,4,5 };
if (pms != null)
{
//for (int i = 0; i <pms.Length; i++)
//{
// if (pms[i]!=null)
// {
// cmd.Parameters.Add(pms[i]);
// }
//}
foreach (SqlParameter item in pms)//第一个参数:你的数据类型 //第二个参数是值 //第三个参数:in 在什么什么里面 //第四个参数 数组的名称
{
if (item != null)
{
cmd.Parameters.Add(item);
}
}
}
//第五步:返回结果
int i = Convert.ToInt32(cmd.ExecuteScalar());
//第六步:关闭数据库
conn.Close();
//第六步:把最终的结果返回到外面去
return i;
}
public static int ExecuteNonQuery(string cmdText, params SqlParameter[] pms)
{
//params:不限长度的数组
//第一步:创建数据库对象连接
SqlConnection conn = new SqlConnection(connstr);
//第二步:打开数据库
conn.Open();
//第三步:创建数据库命令对象和数据库查询语句
SqlCommand cmd = new SqlCommand(cmdText, conn);
//第四步:创建参数对象
//cmd.Parameters.Add(pms);//如果我们在这里直接放入pms数组,那么cmd添加进去的都是SqlParameter,而不是具体的参数。
// int[] ii = new int[5] { 1,2,3,4,5 };
if (pms != null)
{
//for (int i = 0; i <pms.Length; i++)
//{
// if (pms[i]!=null)
// {
// cmd.Parameters.Add(pms[i]);
// }
//}
foreach (SqlParameter item in pms)//第一个参数:你的数据类型 //第二个参数是值 //第三个参数:in 在什么什么里面 //第四个参数 数组的名称
{
if (item != null)
{
cmd.Parameters.Add(item);
}
}
}
//第五步:返回结果
int i = Convert.ToInt32(cmd.ExecuteNonQuery());
//第六步:关闭数据库
conn.Close();
//第六步:把最终的结果返回到外面去
return i;
}
//返回一张表
public static DataTable GetTable(string cmdText, params SqlParameter[] pms)
{
//params:不限长度的数组
//第一步:创建数据库对象连接
SqlConnection conn = new SqlConnection(connstr);
//第二步:打开数据库
conn.Open();
//第三步:创建数据库命令对象和数据库查询语句
SqlCommand cmd = new SqlCommand(cmdText, conn);
//第四步:创建参数对象
//cmd.Parameters.Add(pms);//如果我们在这里直接放入pms数组,那么cmd添加进去的都是SqlParameter,而不是具体的参数。
// int[] ii = new int[5] { 1,2,3,4,5 };
if (pms != null)
{
//for (int i = 0; i <pms.Length; i++)
//{
// if (pms[i]!=null)
// {
// cmd.Parameters.Add(pms[i]);
// }
//}
foreach (SqlParameter item in pms)//第一个参数:你的数据类型 //第二个参数是值 //第三个参数:in 在什么什么里面 //第四个参数 数组的名称
{
if (item != null)
{
cmd.Parameters.Add(item);
}
}
}
//5. SqlDataAdapter是.net中用于存放数组库里面取出来的数 相当于我们现实生活中的容器
SqlDataAdapter sda = new SqlDataAdapter(cmd);
//6.去创建一个适配器 用来接受容器的
DataSet ds = new DataSet();
sda.Fill(ds,"aa");
conn.Close();
DataTable dt = ds.Tables["aa"];
return dt;
}
public static SqlDataReader GetReader(string cmdText, params SqlParameter[] pms)
{
SqlConnection conn = new SqlConnection(connstr);
//第二步:打开数据库
conn.Open();
//第三步:创建数据库命令对象和数据库查询语句
SqlCommand cmd = new SqlCommand(cmdText, conn);
//第四步:创建参数对象
//cmd.Parameters.Add(pms);//如果我们在这里直接放入pms数组,那么cmd添加进去的都是SqlParameter,而不是具体的参数。
// int[] ii = new int[5] { 1,2,3,4,5 };
if (pms != null)
{
//for (int i = 0; i <pms.Length; i++)
//{
// if (pms[i]!=null)
// {
// cmd.Parameters.Add(pms[i]);
// }
//}
foreach (SqlParameter item in pms)//第一个参数:你的数据类型 //第二个参数是值 //第三个参数:in 在什么什么里面 //第四个参数 数组的名称
{
if (item != null)
{
cmd.Parameters.Add(item);
}
}
}
SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);//把数据取出来以游标的形式放入sdr
return sdr;
}
}


猜你喜欢
- 来源 | OpenCV学堂作者 | gloomyfish基本思路选择以前我用过Caffe,用过tensorflow,最近
- 如下所示:import rec = re.compile(r'\d')s = 'you1are2welcome
- 什么是insert buffer? 插入缓冲,也称之为insert buffer,它是innodb存储引擎的关键特性
- 我用的是Anaconda3 ,用spyder编写pytorch的代码,在Anaconda3中新建了一个pytorch的虚拟环境(虚拟环境的名
- #小策略,策略逻辑是在金叉时候买进,死叉时候卖出,所谓金叉死叉是两条均线的交叉,当短期均线上穿长期均线为金叉,反之为死叉#下面是策略代码及结
- 一、os常用方法1.获取当前路径 os.getcwd()# coding:utf-8import osif __name__ == '
- 本文最主要参考的是这一篇,后端也是用django来完成。大文件上传(秒传/断点续传)_使用Vue-Simple-Uploader插件 --V
- 利用Opencv中的Houghline方法进行直线检测—python语言这是给Python部落翻译的文章,请在这里看原文。在图像处理中,霍夫
- 在前面的DRF系列教程中,我们以博客为例介绍了序列化器, 使用基于类的视图APIView和ModelViewSet开发了针对文章资源进行增删
- 1.字符串的驻留机制字符串:在Python中字符串是基本的数据类型,是一个不可变的字符序列2.什么叫字符串的驻留机制仅保存一份相同且不可变字
- 示例一:直接编写AJAX 实现。 客户端: 代码如下:<!DOCTYPE html PUBLIC &qu
- 项目开发中文件的读写是必不可少的下面来简单介绍一下文件的读读文件,首先我们要有文件那我首先自己创建了一个文本文件password.txt内容
- 本文实例为大家分享了mysql5.6.29的shell脚本,供大家参考,具体内容如下创建脚本mysql.sh,直接运行sh mysql.sh
- 重装了笔记本上的oracle,安装完成后,可以正常使用OEM控制台,但是注销后重新登录或者重启系统后登录,或者笔记本使用网络环境发生了变化,
- ---- Oracle是关系型数据库管理系统,它功能强大、性能卓越,在当今大型数据库管理系统中占有重要地位。在我们开发的一MIS
- 一、前言前几天需要划分数据集,就写了一个小demo去完成这个任务。随机划分图片数据集任务描述:我的所有图片保存在同一个文件夹里,需要随机将图
- 本文实例讲述了php中正则替换函数ereg_replace用法。分享给大家供大家参考。具体如下:下面的实例是利用php 正则替换函数 ere
- 合成微缩效果前言图像中的模糊效果可以强烈影响被拍摄场景的感知,模糊在传达所需的尺寸和距离感方面起着重要作用。合成微缩 (miniature
- 前面简单介绍了Python列表基本操作,这里再来简单讲述一下Python元组相关操作>>> dir(tuple) #查看元
- 前言其实Python使用QQ邮箱发送Email代码很简单,短短几行代码就可以实现这个功能。使用到的模块有smtplib和email这个两个模