C#访问数据库MSSQL

2023-11-05

首先声明命名空间using System.Data.SqlClient;

再使用SqlConnection类连接,SqlCommand类执行SQL命令,结果返回给SqlDataReader类或其它类。

 

各类的基本用法介绍:

SqlConnection类

在构造时传入连接数据库字符串,也可以定义后通过ConnectionString属性来设置。

用Open()连接数据库,用Close()关闭连接。

 

SqlCommand类

在构造时传入SQL命令和SqlConnection类对象,也可以定义后通过CommandText属性和Connection属性来设置。

执行SQL命令并得到结果                 SqlDataReader ExecuteReader()

执行SQL命令并得到受影响的行数    int ExecuteNonQuery()

 

SqlDataReader类

得到共有多少列          FieldCount属性

得到第i列的列名         string GetName(int i)

得到第i列的数据类型  Type GetFieldType(int i)

判断第i列是否为空     bool IsDBNull(int i)

得到第i列的数据        Object GetValue(int i)也可以直接sr[i].ToString()

前进到下一列            bool Read()

关闭                         void Close()

 

 

对 于每个关联的 SqlConnection,一次只能打开一个 SqlDataReader,在第一个关闭之前,打开另一个的任何尝试都将失败。类似地,在使用 SqlDataReader 时,关联的 SqlConnection 正忙于为它提供服务,直到调用 Close()时为止。

 

//连接数据库  
    string SQLCONNECT = @"server=PC-200907281720\SQLEXPRESS;database=master;uid=morewindows;pwd=12345";  
    SqlConnection conn = new SqlConnection(SQLCONNECT);  
    conn.Open();  
      
    //连接数据库之后就可以执行SQL命令了  
    //使用SqlCommand类的ExecuteReader()返回执行的结果  
    string SQLCOMMAND = "select CName, names, C4.LastLogin from C4, S4 where C4.LastLogin = S4.LastLogin order by CName, names";  
    SqlCommand sqlcmd = new SqlCommand(SQLCOMMAND, conn);  
    SqlDataReader sr = sqlcmd.ExecuteReader();  
      
    Console.WriteLine("列数:" + sr.FieldCount);     
              
    Console.WriteLine("列类型分别为:");   
    int nSqlCol = sr.FieldCount;  
    for (int i = 0; i < nSqlCol; ++i)  
    Console.Write(sr.GetFieldType(i) + " ");  
    Console.WriteLine();  
      
    while (sr.Read())  
    {  
    for (int i = 0; i < nSqlCol; i++)  
    Console.Write(sr[i].ToString() + " ");  
    Console.WriteLine();  
    }  
    sr.Close();  
      
    //通过SqlCommand 类的ExecuteNonQuery()来返回受影响的行数。  
    string SQLCOMMAND2 = "update dbo.Messages set MessageNum='15' where MessageID='2'";  
    SqlCommand sqlcmd2 = new SqlCommand(SQLCOMMAND2, conn);//也可以用sqlcmd. ConnectionString = SQLCOMMAND2 代替  
    int nResult = sqlcmd2.ExecuteNonQuery();  
    Console.WriteLine("受影响行数:" + nResult);  
      
    conn.Close();

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#访问数据库MSSQL 的相关文章

  • InvalidOperationException - 对象当前正在其他地方使用 - 红十字

    我有一个 C 桌面应用程序 其中我连续创建的一个线程从源 实际上是一台数码相机 获取图像并将其放在 GUI 中的面板 panel Image img 上 这必须是另一个线程 如它是控件的代码隐藏 该应用程序可以工作 但在某些机器上 我会在随
  • Directory.Delete 之后 Directory.Exists 有时返回 true ?

    我有非常奇怪的行为 我有 Directory Delete tempFolder true if Directory Exists tempFolder 有时 Directory Exists 返回 true 为什么 可能是资源管理器打开了
  • MVC 在布局代码之前执行视图代码并破坏我的脚本顺序

    我正在尝试将所有 javascript 包含内容移至页面底部 我正在将 MVC 与 Razor 一起使用 我编写了一个辅助方法来注册脚本 它按注册顺序保留脚本 并排除重复的内容 Html RegisterScript scripts som
  • 复制 std::function 的成本有多高?

    While std function是可移动的 但在某些情况下不可能或不方便 复制它会受到重大处罚吗 它是否可能取决于捕获变量的大小 如果它是使用 lambda 表达式创建的 它依赖于实现吗 std function通常被实现为值语义 小缓
  • 错误:表达式不产生值

    我尝试将以下 C 代码转换为 VB NET 但在编译代码时出现 表达式不产生值 错误 C Code return Fluently Configure Mappings m gt m FluentMappings AddFromAssemb
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 将 Word 文档另存为图像

    我正在使用下面的代码将 Word 文档转换为图像文件 但是图片显得太大 内容不适合 有没有办法渲染图片或将图片保存到合适的尺寸 private void btnConvert Click object sender EventArgs e
  • qdbusxml2cpp 未知类型

    在使用 qdbusxml2cpp 程序将以下 xml 转换为 Qt 类时 我收到此错误 qdbusxml2cpp c ObjectManager a ObjectManager ObjectManager cpp xml object ma
  • 我可以使用 moq Mock 来模拟类而不是接口吗?

    正在经历https github com Moq moq4 wiki Quickstart https github com Moq moq4 wiki Quickstart 我看到它 Mock 一个接口 我的遗留代码中有一个没有接口的类
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • 如何检测表单的任何控件的变化?

    如何检测 C 中表单的任何控件的更改 由于我在一个表单上有许多控件 并且如果表单中的任何控件值发生更改 我需要禁用按钮 我正在寻找一些内置函数 事件处理程序 属性 并且不想为此创建自定义函数 不 我不知道任何时候都会触发任何事件any控制表
  • Qt - ubuntu中的串口名称

    我在 Ubuntu 上查找串行端口名称时遇到问题 如您所知 为了在 Windows 上读取串口 我们可以使用以下代码 serial gt setPortName com3 但是当我在 Ubuntu 上编译这段代码时 我无法使用这段代码 se
  • 如何禁用 fread() 中的缓冲?

    我正在使用 fread 和 fwrite 读取和写入套接字 我相信这些函数用于缓冲输入和输出 有什么方法可以在仍然使用这些功能的同时禁用缓冲吗 Edit 我正在构建一个远程桌面应用程序 远程客户端似乎 落后于服务器 我不知道可能是什么原因
  • CMake 无法确定目标的链接器语言

    首先 我查看了this https stackoverflow com questions 11801186 cmake unable to determine linker language with c发帖并找不到解决我的问题的方法 我
  • 动态添加 ASP.Net 控件

    我有一个存储过程 它根据数据库中存储的记录数返回多行 现在我想有一种方法来创建 div 带有包含该行值的控件的标记 如果从数据库返回 10 行 则 10 div 必须创建标签 我有下面的代码来从数据库中获取结果 但我不知道如何从这里继续 S
  • 将 MQTTNet 服务器与 MQTT.js 客户端结合使用

    我已经启动了一个 MQTT 服务器 就像this https github com chkr1011 MQTTnet tree master例子 该代码托管在 ASP Net Core 2 0 应用程序中 但我尝试过控制台应用程序 但没有成
  • 无法接收 UDP Windows RT

    我正在为 Windows 8 RT 编写一个 Windows Store Metro Modern RT 应用程序 需要在端口 49030 上接收 UDP 数据包 但我似乎无法接收任何数据包 我已按照使用教程进行操作DatagramSock
  • 我的班级应该订阅自己的公共活动吗?

    我正在使用 C 3 0 遵循标准事件模式我有 public event EventHandler
  • 如何将 PostgreSql 与 EntityFramework 6.0.2 集成? [复制]

    这个问题在这里已经有答案了 我收到以下错误 实体框架提供程序类型的 实例 成员 Npgsql NpgsqlServices Npgsql 版本 2 0 14 2 文化 中性 PublicKeyToken 5d8b90d52f46fda7 没
  • 当我使用 OpenSSL1.1.0g 根据固定的 p 和 g 值创建 Diffie Hellman 密钥协议密钥时,应该执行哪些检查?

    您好 我尝试通过这段代码使用修复 p 和 g 参数来制作 Diffie Hellman Keysanswer https stackoverflow com a 54538811 4706711 include

随机推荐

  • wifi协议_图解 802.11wifi协议

    微信公众号 卢同学关注可了解更多 若有问题或建议 请与本人联系或者公众号留言 如果你觉得此文对你有帮助 欢迎赞赏 目录 凡事若能综观形势 通常有助于细节的进一步探究 从OSI七层模型来看 802规范的重心放在OSI模型最下面的两层 即数据链
  • Python爬虫入门7:HTML报文解析获取网页基本信息

    前往老猿Python博客 https blog csdn net LaoYuanPython 一 引言 BeautifulSoup是三方模块bs4中提供的进行HTML解析的类 可以认为是一个HTML解析工具箱 对HTML报文中的标签具有比较
  • wrieshark 抓包图解 MSDU AMSDU MPDU AMPDU 的区别

    区分这几种帧格式明确 802 3 和 802 11 两种帧格式即可 MSDU 首先 MSDU 是802 3的帧格式 从以太口发出去的帧都是MSDU格式的 A MSDU AMSDU 是把几个MSDU 聚合在一起并从以太网口发出去的帧 MPDU
  • 性能测试流程

    目 录 一 文档介绍 3 1 1文档目的 3 1 2适用对象 3 二 性能测试简介 3 2 1 性能测试概念 3 2 2 常用性能指标 4 2 3常用性能测试工具 5 三 性能测试流程 6 3 1 性能测试流程图 6 3 2 性能测试流程详
  • APScheduler 源码阅读(二) job

    趁热打铁 学习一下 APScheduler 的 python 的源码 很好奇任务调度控制的实现 分析源码主要还是针对 APScheduler 下的几个关键的模块 events 事件 executors 执行器 job 任务 jobstore
  • libcaffe Check failed: registry.count(type) == 1 (0 vs. 1) Unknown layer type: Input (known types: )

    在用libcaffe lib建立工程时 出现 Check failed registry count type 1 0 vs 1 Unknown layer type Input known types 错误 参考了两篇博文解决问题 主要思
  • warning: ignoring JAVA_HOME=D:\JDK; using bundled JDK报错解决

    warning ignoring JAVA HOME D JDK using bundled JDK报错原因是因为你JDK版本太低或者你的ElasticSearch版本太高降低版本即可 我的是JDK1 8我下载的是elasticsearch
  • 八皇后问题--回溯

    在刘汝佳老师的书中对于8皇后问题的分析 我感觉非常经典 8皇后问题可行的解 92个 回溯的定义 当把问题分解成若干的步骤并递归的求解时候 如果当前步骤没有合法的选择 则函数将返回上一级递归调用 这种现象称为回溯 这是这个原因 递归枚举算法常
  • uniapp 保存二维码到本地,如果不是本地图片需要先下载后保存。

    如果二维码不是固定的 是线上的就需要先去下载 baocuns 保存二维码 let that this uni showLoading title 保存中 uni downloadFile 先下载网络图片 转为临时路径图片 url that
  • 进制转换C语言实现(十进制转换为任意进制)

    程序实现功能 输入一个十进制数和R 表示要转换成R进制 输出转换后的数 事例 例如 输入 10 2 输出 1010 源代码如下 include
  • UE的rtsp插件崩溃过程排查

    Part1前言 Invideo插件是一个UE5的rtsp视频播放插件 当然还可以播放主流的其他视频协议 其开源地址如下https github com inveta InVideo 前段时间有网页反馈使用该插件进行播放视频的时候会有偶发程序
  • 如何学习计算机视觉?初学者怎么入门?

    学习计算机视觉需要一定的数学 编程和机器学习基础 以下是一些学习计算机视觉的步骤和资源 如何学习计算机视觉 初学者怎么入门 学习编程语言 计算机视觉的主要编程语言包括Python和C 可以学习Python或C 编程 掌握基本语法和编程思想
  • librtmp ssl 1.0.0 到 ssl 1.1.1

    openssl 版本更新了 导致 librtmp 库不能使用 于是查查资料 Compiler errors dereferencing pointer to incomplete type DH aka struct dh st 根据上面的
  • torch.cuda模块获取信息

    判断GPU是否可用 import torch print torch cuda is available 如果输出True则表示可以使用GPU 输出可使用GPU的数量 import torch print torch cuda device
  • 15 Flutter TabBarView和TabBar 定义顶部 Tab 切换

    Flutter TabBarView和TabBar 定义顶部 Tab 切换 1 属性 TabBar属性 说明 tabs 一系列标签控件 controller 标签选择变化控制器 isScrollable 是否可滚动 默认false indi
  • Floyd 算法,找出所有最短路径或最长路径 matlab (二)

    所有最短路径 在 一 中 我们获得了距离矩阵和路由矩阵 元胞 这个一个无向图 这是上次算出的距离矩阵和路由矩阵 接下来介绍如何根据这个路由矩阵 元胞 列出所有最短路径 结果存储在一个矩阵里 每一行代表一条最短路径的标号 定义列出所有最短路径
  • MQ可以用在哪些地方,解决什么问题?

    MQ kafka是以吞吐量高而闻名 不过其数据稳定性一般 而且无法保证消息有序性 阿里巴巴的RocketMQ基于Kafka的原理 利用Java代码打造 弥补了Kafka的缺点 继承了其高吞吐的优势 其客户端目前以Java为主 RabbitM
  • Python+Opencv实现实时的条形码检测

    目录 一 场景需求简介 二 算法实现步骤 三 图片中条形码检测代码实现 四 图片中条形码检测效果展示与分析 五 视频中条形码检测代码实现 六 视频中条形码检测效果展示与分析 七 思维扩展 参考资料 注意事项 一 场景需求简介 在现实场景中
  • flutter type ‘int‘ is not a subtype of type ‘String?‘

    type int is not a subtype of type String 不是int 将int改成String类型 Unhandled Exception type double is not a subtype of type i
  • C#访问数据库MSSQL

    首先声明命名空间using System Data SqlClient 再使用SqlConnection类连接 SqlCommand类执行SQL命令 结果返回给SqlDataReader类或其它类 各类的基本用法介绍 SqlConnecti