前言

自从用 Entity Framework 就再也没有用过 ADO.NET 了. 很多年前写过 基础 ADO.NET 访问MYSQL 与 MSSQL 数据库例子.

今天刚好想做个单侧, 那就顺便翻新一下呗.

安装

dotnet new console -o TestAdoNet

dotnet add package Microsoft.Data.SqlClient

Microsoft.Data.SqlClient 而不是 System.Data.SqlClient 哦, 不要搞混了.

而且用 Microsoft.Data.SqlClient 的话 connection string 一定要 TrustServerCertificate, 参考1, 参考2

Connection

namespace TestAdoNet;
public class Program
{
public static async Task Main()
{
var connectionStringBuilder = new SqlConnectionStringBuilder(
$"Server=192.168.1.152;Database=MyDatabase;User Id=username;TrustServerCertificate=True;"
)
{
Password = "my password"
};
using var connection = new SqlConnection(connectionStringBuilder.ConnectionString);
await connection.OpenAsync();
}
}

记得要 using 哦, using 结束 connect 也会自动 close.

Command

using var command = new SqlCommand
{
Connection = connection,
CommandText = "SELECT * FROM [Products] WHERE [title] = @title",
};
command.Parameters.Add(new SqlParameter("@title", "Fly Sticky Pad Type 1"));

防止 SQL Inject 记得用 Parameter 哦

Read Result

using var reader = await command.ExecuteReaderAsync();
while (await reader.ReadAsync()) // loop rows
{
for (var i = 0; i < reader.FieldCount; i++) // loop columns
{
var name = reader.GetName(i);
var filedType = reader.GetFieldType(i);
var value = reader.GetValue(i);
}
var id = reader.GetInt32("Id"); // get known column value
}

Put result into Table

reader 只能读取一轮, 如果想复读可以把它装进 table 里

var table = new DataTable();
table.Load(reader);
// 需要强转去 DataRow 和 DataColumn 哦
foreach (DataRow row in table.Rows) // loop rows
{
foreach (DataColumn column in table.Columns) // loop column
{
if (column.ColumnName == "id")
{
row.Field<int>(column); // get by column
var cell1 = row.Field<int>(0); // get by index
}
} foreach (var value in row.ItemArray) // loop cells
{ }
}

其它

以后有用到才写 TODO...

ASP.NET Core – ADO.NET的更多相关文章

  1. Asp.Net Core 2.0 项目实战(4)ADO.NET操作数据库封装、 EF Core操作及实例

    Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Ne ...

  2. ASP.NET Core 之 Identity 入门(三)

    前言 在上一篇文章中,我们学习了 CookieAuthentication 中间件,本篇的话主要看一下 Identity 本身. 最早2005年 ASP.NET 2.0 的时候开始, Web 应用程序 ...

  3. ASP.NET Core官方计划路线及需要废除的一些Framework技术

    概述 下面是 ASP.NET Core的时间表和路线图. 注意日期和特性都可能更改. 作为.NET Core这么大的一个项目,很难准确预测每一个计划的是否有变动. 即便如此,我们还是计划公开和透明的实 ...

  4. 【无私分享:ASP.NET CORE 项目实战(第十三章)】Asp.net Core 使用MyCat分布式数据库,实现读写分离

    目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 MyCat2.0版本很快就发布了,关于MyCat的动态和一些问题,大家可以加一下MyCat的官方QQ群:106088787.我 ...

  5. 创建ASP.NET Core MVC应用程序(2)-利用MySQL Connector NET连接到MySQL

    创建ASP.NET Core MVC应用程序(2)-利用MySQL Connector NET连接到MySQL 用惯.NET的研发人员都习惯性地使用SQLServer作为数据库.然而.NET Core ...

  6. [转]ASP.NET Core 之 Identity 入门(三)

    本文转自:http://www.cnblogs.com/savorboard/p/aspnetcore-identity3.html 前言 在上一篇文章中,我们学习了 CookieAuthentica ...

  7. Asp.Net Core 项目搭建 基础配置 和MySql 的使用

    一.开发环境准备 1.安装Visual Studio 2015,我这里安装的是专业版. 2.安装.NET Core SDK相关 需要安装  Visual Studio 2015 update3和NET ...

  8. 【原生态跨平台:ASP.NET Core 1.0(非Mono)在 Ubuntu 14.04 服务器上一对一的配置实现-篇幅1】

    鸡冻人心的2016,微软高产年. build 2016后 各种干货层出不穷. 1 Win10 集成了bash  ,实现了纳德拉的成诺,Microsoft Love Linux!!! 2 跨平台  ,收 ...

  9. .NET Core 2.0和ASP.NET Core 2.0正式版抢先体验

    .NET Core 2.0和ASP.NET Core 2.0正式版抢先体验 .NET Standard 2.0 is final Broad platform support. .NET Standa ...

  10. 一起学ASP.NET Core 2.0学习笔记(二): ef core2.0 及mysql provider 、Fluent API相关配置及迁移

    不得不说微软的技术迭代还是很快的,上了微软的船就得跟着她走下去,前文一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx.superviso ...

随机推荐

  1. 4 安卓h5分享功能未实现

    安卓h5点击分享没有复制链接到剪切板

  2. ComfyUI进阶:Comfyroll插件 (一)

    ComfyUI进阶:Comfyroll插件 (一) 前言: 学习ComfyUI是一场持久战,而Comfyroll Studio 是一款功能强大的自定义节点集合,专为 ComfyUI 用户打造,旨在提供 ...

  3. [oeasy]python0145_版本控制_git_备份还原

    git版本控制 回忆上次内容 上次我们了解了 try 的完全体 try 尝试运行   except 发现异常时运行的代码块   else 没有发现异常时运行的代码块   finally 无论是否发现异 ...

  4. oeasy教您玩转vim - 26 - 缩进设置

    ​ 缩进设置 回忆上节课内容 这次了解了颜色的细节 设置 256 色模式 :set t_Co=256 然后确定了具体的各种颜色 还可以生成网页 :TOhtml 还有什么好玩的么? ​ 缩进设置 ​ 在 ...

  5. oeasy教您玩转vim - 51 - # 读写文件

    读写文件 回忆上节课内容 命令行的光标控制 方向键️️️️️可以控制左右移动 shift+️️️️️按照word左右移动光标 ctrl+b 到开头begin ctrl+e 到结尾end ctrl+w ...

  6. 图解翻转单向链表,超详细(python语言实现)

    节点类: 1 class ListNode(object): 2 def __init__(self, x): 3 self.val = x 4 slef.next = None 反转单向链表的函数如 ...

  7. 2024-07-27:用go语言,给定一个正整数数组,最开始可以对数组中的元素进行增加操作,每个元素最多加1。 然后从修改后的数组中选出一个或多个元素,使得这些元素排序后是连续的。 要求找出最多可以选

    2024-07-27:用go语言,给定一个正整数数组,最开始可以对数组中的元素进行增加操作,每个元素最多加1. 然后从修改后的数组中选出一个或多个元素,使得这些元素排序后是连续的. 要求找出最多可以选 ...

  8. ubuntu禁止内核自动更新

    ubuntu禁止内核自动更新 查看已安装内核dpkg --get-selections |grep linux-image 查看正在使用的内核uname -a 禁止内核更新sudo apt-mark ...

  9. XML 教程——检视阅读

    基本 XML 简介 XML 指可扩展标记语言(eXtensible Markup Language). XML 被设计用来传输和存储数据.HTML 被设计用来显示数据. 什么是 XML? XML 指可 ...

  10. 如何使用H100打游戏——这是史上最快GPU!我们测了四张H100!价值120万元!

    资料: 这是史上最快GPU!我们测了四张H100!价值120万元! 对显卡H100的测评视频.