C#连接sqlServer数据库详解

2023-10-26

  C# 是如何跟SQL Server进行连接的?


       在C#/.NET程序设计中,离不开ADO.NET。ADO.NET是.NET连接数据库的重要组件。使用其可以很方便地访问数据库,ADO.NET还可以访问Oracle数据库、Access数据库、SQL Server数据库等主流的数据库。使用ADO.NET连接数据库主要使用ADO.NET中的5个类。

       数据库连接类Connection:如果连接SQLServer数据库,可以使用SqlConnetion类。在使用SqlConnection类是要引用一个System.Data.SqlClient的命名空间。

       数据库命令类Command:如果连接的是SQLServer数据库,可以使用SqlCommand。数据库命令类主要执行对数据库的操作,比如插入、删除、修改等。

       数据库读取类DataReader:如果连接SQLServer数据库,可以使用SqlDataReader。数据库读取类是数据库命令类在执行了查询操作后返回的结果的数据类型。数据库读取类只是数据库的连接状态处于打开状态时才能使用,当数据库关闭时数据库读取类中就不能够再取值了。

       数据集类DataSet:数据集相当于一个虚拟数据库,每一个数据集中包括了多张数据表。即使数据库的连接处于断开状态,还是可以从数据集中继续存取记录,只是数据是存放在数据集中的,并没有存放在数据库中。

       数据适配类DataAdapter:如果连接SQLServer数据库,可以使用SqlDataAdapter。数据适配器经常和数据集一起使用,通过数据适配器可以把数据库中的数据存放到数据集中,数据适配器可以说是数据集和数据库之间的一个桥梁。


            连接数据库一般有两种方式:

       1、使用SQL用户名、密码验证

        Data Source = 服务器名;Initial Catalog = 数据库名;User ID = 用户名;Pwd = 密码(没有密码可以省略)

                例如:public string connString = "Data Source=xp;Initial Catalog=ExpressManager;User ID = sa;Pwd = 123";

       2、使用windows身份验证

        Data Source = 服务器名;Initial Catalog = 数据库名;Integrated Security = TRUE(或者:SSPI)

                例如:public string connString = "Data Source=xp;Initial Catalog=ExpressManager;Integrated Security=TRUE";


      在身份验证可以选SQL 用户名、密码验证。


      接下来就是在源文件里加入连接数据库的代码,首先得在xxx.cs源文件中加入以下语句

      using System.Data; 

      using System.Data.SqlClient;

      接下来就是对数据库的操作类方法的实现:

  1. // 数据库操作类  
  2.    class Express  
  3.    {  
  4.        public string connString = "Data Source=xp;Initial Catalog=ExpressManager;Integrated Security=TRUE";  
  5.        //创建连接对象的变量  
  6.        public SqlConnection conn;  
  7.        // 执行对数据表中数据的增加、删除、修改操作  
  8.        public int NonQuery(string sql)  
  9.        {  
  10.            conn = new SqlConnection(connString);  
  11.            int a = -1;  
  12.            try  
  13.            {  
  14.                conn.Open();  //打开数据库  
  15.                SqlCommand cmd = new SqlCommand(sql, conn);  
  16.                a = cmd.ExecuteNonQuery();  
  17.            }  
  18.            catch  
  19.            {  
  20.   
  21.            }  
  22.            finally  
  23.            {  
  24.                if (conn.State == ConnectionState.Open)  
  25.                {  
  26.                    conn.Close();    //关闭数据库  
  27.                }  
  28.            }  
  29.            return a;  
  30.   
  31.        }  
  32.        // 执行对数据表中数据的查询操作  
  33.        public DataSet Query(string sql)  
  34.        {  
  35.            conn = new SqlConnection(connString);  
  36.            DataSet ds = new DataSet();  
  37.            try  
  38.            {  
  39.                conn.Open();      //打开数据库  
  40.                SqlDataAdapter adp = new SqlDataAdapter(sql, conn);  
  41.                adp.Fill(ds);  
  42.            }  
  43.            catch  
  44.            {  
  45.   
  46.            }  
  47.            finally  
  48.            {  
  49.                if(conn.State== ConnectionState.Open)  
  50.                conn.Close();      //关闭数据库  
  51.            }  
  52.            return ds;  
  53.        }  
  54.    }  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#连接sqlServer数据库详解 的相关文章

  • 激光雷达对植被冠层结构和SIF同时探测展望

    前言 陆表植被在全球碳循环中起着不可替代的作用 但现阶段 人们对气候变化与植被生态理化功能的关系的研究还不够完善 为了提高气候预测以及缓解气候恶化的速率 对植被参数比如 叶面积指数 leaf 植被冠层结构 canopy 和生态系统以及区域尺
  • Linux服务器程序规范

    Linux服务器程序规范 Linux服务器程序一般都是以后台进程形式运行 后台进程又称为守护进程 daemon 其没有控制终端 不会意外接收到用户输入 守护进程的父进程通常是init进程 PID为1的进程 Linux服务器程序通常有一套日志
  • Tomcat启动不了报 java.net.BindException “Address already in use: NET_Bind“这个异常

    Tomcat在IDEA运行报以下错误 启动不了Tomcat Error running Tomcat 8 5 57开关 Unable to open debugger port 127 0 0 1 63840 java net BindEx

随机推荐

  • Hive文件格式

    文章目录 1 概述 1 1 行存储 列存储 2 TEXTFILE 3 SEQUENCEFILE 3 RCFILE 4 ORCFILE 5 Parquet 8 区别 8 1 空间对比 磁盘空间占用大小比较 8 2 查询语句运行时间大小比较 9
  • socket链接检测超时时间过短导致的问题

    新增了另外一个区域的代理 跨州 原来的代理可达性检测只有50ms 就不够了 导致大量报错 更换为1000毫秒后 就正常了 需要注意网络中几个连接超时时间的设置问题 1 链接超时时间 一般是1 5秒 全内网服务器 可以设置得更短一些 2 等待
  • 《消息队列高手课》 消息积压了该如何处理?

    据我了解 在使用消息队列遇到的问题中 消息积压这个问题 应该是最常遇到的问题了 并且 这个问题还不太好解决 我们都知道 消息积压的直接原因 一定是系统中的某个部分出现了性能问题 来不及处理上游发送的消息 才会导致消息积压 所以 我们先来分析
  • CSS背景属性Background详解

    本文详解了CSS的背景属性Background 包括CSS3中新增的背景属性 如果你是个CSS初学者 还可以查看之前介绍的CSS浮动属性和CSS透明属性详解 css2 中的背景 background CSS2 中有5个主要的背景 backg
  • Maven详解之仓库------本地仓库、远程仓库

    Dragon s Life 坚持 完成每一个目标 目录视图 摘要视图 订阅 征文 从高考 到程序员 深度学习与TensorFlow入门一课搞定 每周荐书 Web扫描 HTML 5 Python 评论送书 Maven详解之仓库 本地仓库 远程
  • Python+Selenium-5-driver.page_source获取页面源码

    driver page source selenium的page source方法可以获取到页面源码 跟爬虫有点相似 获取到页面资源 提取出我们需要的信息 案例 以煎蛋网为例 获取首页的全部title 获取页面源码 使用re正则提取需要的t
  • SpringBoot自定义工厂类读取yml配置文件&&SpringBoot轻松读取properties文件

    PropertySource指定文件地址 ConfigurationProperties指定前缀 第一次 SpringBoot 读取配置文件 demo如下 designers yml文件 designer owner openids 8hV
  • IDEA导入lib目录下的jar包

    https blog csdn net u010286027 article details 85248719 ops request misc request id biz id 102 utm term idea E6 96 B0 E5
  • LeetCode【114】二叉树展开为链表

    题目 给定一个二叉树 原地将它展开为链表 例如 给定二叉树 将其展开为 最终转化完 pre节点只有right 没有left TreeNode pre null public void flatten TreeNode root if roo
  • 【Mariadb高可用MHA】

    目录 一 概述 1 概念 2 组成 3 特点 4 工作原理 二 案例介绍 1 192 168 42 3 2 192 168 42 4 3 192 168 42 5 4 192 168 42 6 三 实际构建MHA 1 ssh免密登录 1 1
  • openshift搭建Istio

    本文档覆盖了官方文档的Setup的所有章节 一 安装Istio 本次安装的Istio版本为1 7 0 环境为openshift 4 3 注 不建议使用openshift 1 11 即kubernetes 3 11 安装istio 可能会出现
  • HBase简介(很好的梳理资料)

    http jiajun iteye com blog 899632 一 简介 history started by chad walters and jim 2006 11 G release paper on BigTable 2007
  • 腾讯云如何修改域名DNS服务器

    当你在腾讯云购买域名后 如果 DNS 服务器不正确 要把域名 DNS 修改为提示的 DNS 地址 解析后才生效 下面老魏说下操作步骤 一 通过以下步骤查看 DNS 服务器是否正确 登录腾讯云控制台 选择 云产品 gt 域名与网站 gt 云解
  • 短视频seo矩阵系统源码开发与部署全解析

    在这个数字化快速发展的时代 短视频已经成为人们获取娱乐 学习 商业信息的主要途径之一 对于企业来说 利用短视频矩阵进行高效且精准的营销推广 无疑是一个重要的战略方向 本文将详细介绍如何进行短视频矩阵源码的开发与部署 一 开发篇 短视频矩阵源
  • linux 常用语句 grep、awk、sed

    复习资料 一 find grep 管道符 1 find 路径 name 文件名 查找文件 2 grep sex true 文本包含sex true 的行显示出来 3 grep sex true grep o age 18 对grep sex
  • 【Kettle】将【MySQL表按字段同步、更新】【脚本运行】

    前提数据 转换 1 表输入设置 2 插入 更新设置 作业 模块设置 SQL设置 手动输入脚本内容 每次运行都会运行此脚本
  • 十、工业相机与SCARA机械臂的坐标系标定

    注 感谢固高长江研究院徐工程师的技术讲解 以及matlab程序 机器人系统程序的提供 在工业现场当中 相机拍摄到的图像有一个相机坐标系 而机器人自身也有一个机器人自身的坐标系 两者互相独立 当我们通过相机进行对物体进行拍摄 通过模式识别得到
  • pygame 学习记录

    话不多说上代码 import pygame import sys pygame init size width height 900 700 speed 2 1 bg 255 255 255 RGB screen pygame displa
  • 文件上传的各种绕过方式

    1 前端绕过 更改前端的过滤方法进行绕过 1 通过浏览器插件来删除检查后援js代码 然后上传webshell 2 上传文件时把后缀名改成png格式 上传时在通过抓包工具把后缀名改回来 3 更改Content Tybe为image jpeg
  • C#连接sqlServer数据库详解

    C 是如何跟SQL Server进行连接的 在C NET程序设计中 离不开ADO NET ADO NET是 NET连接数据库的重要组件 使用其可以很方便地访问数据库 ADO NET还可以访问Oracle数据库 Access数据库 SQL S