ADO .Net操作SQL Server数据库

//ADO.NET是.NET Framework提供的数据访问服务的类库,应用程序可以使用ADO.NET连接到这些数据源,并检索、处理和更新数据

//常用的数据源包括四种:
(1)Microsoft SQL Server数据源:使用System.Data.SqlClient名称空间

(2)OLEDB数据源:使用System.Data.OleDb名称空间

(3)ODBC数据源:使用System.Data.Odbc名称空间

(4)Oracle数据源:使用System.Data.OracleClient名称空间

ADO.NET用于访问和处理数据的类库包含以下两个组件:

  • (1).NET Framework 数据提供程序
  • (2)DataSet

Microsoft SQL Server .NET Framework 数据提供程序:

  • SqlConnection:建立与Microsoft SQL Server数据源的连接
  • SqlCommand:对数据源执行各种SQL命令
  • SqlDataReader:从数据源中抽取数据(只读)
  • SqlDataAdapter:用数据源填充DataSet

//一.SQL Server数据库查询

cs 复制代码
using (SqlConnection conn = new SqlConnection())
{
    //创建打开连接
    conn.ConnectionString = "";
    conn.Open();

    //创建查询
    SqlCommand cmd1 = new SqlCommand("select id,name from users", conn);

    //执行查询ExecuteReader()
    SqlDataReader sdr = cmd1.ExecuteReader();

    //获取查询结果
    Console.WriteLine($"id\tname");
    if (sdr.Read())
        Console.WriteLine($"{sdr[0]}\t{sdr[1]}");
    sdr.Close();
}

//二.使用ADO.NET在数据库表中 "增删改" 操作的一般步骤为:

//1.先建立数据库连接

//2.然后使用SQL Insert/Update/Delete语句创建命令,

//3.并使用Command 的 Parameters 属性来设置输入参数

//4.最后使用命令的ExecuteNonQuery()方法执行数据库记录插入操作,并根据返回的结果判断插入的结果

cs 复制代码
using (SqlConnection conn = new SqlConnection())
{
    //创建连接
    conn.ConnectionString = "";
    conn.Open();

    //创建查询
    //SqlCommand cmd_update = new SqlCommand("update users set name = @name where id = @id", conn);
    //SqlCommand cmd_delete = new SqlCommand("delete from users where id = @id", conn);
    SqlCommand cmd_insert = new SqlCommand("insert users(id,name) values(@id,@name)", conn);
    cmd_insert.CommandType = System.Data.CommandType.Text;
    //设置参数
    //方法1
    SqlParameter[] sqlparams = new SqlParameter[2] { new SqlParameter("@id",10), new SqlParameter("@name", "David") } ;
    cmd_insert.Parameters.AddRange(sqlparams);
    //方法2
    cmd_insert.Parameters.Add(new SqlParameter("@id", 10));
    cmd_insert.Parameters.Add(new SqlParameter("@name", "David"));
    //方法3
    cmd_insert.Parameters.AddWithValue("@id", 10);
    cmd_insert.Parameters.AddWithValue("@name", "David");

    //执行查询ExecuteReader()
    int r = cmd_insert.ExecuteNonQuery();

    //获取查询结果
    if(r == 1)
    {
        Console.WriteLine("insert OK");
    }
    else
    {
        Console.WriteLine("insert failed");
    }
}

//三.使用DataAdapter和DataSet访问数据库

//使用DataAdapter和DataSet访问数据库的典型步骤如下:

//(1)建立数据库连接

//(2)创建DataAdapter, 从DataAdapter填充DataSet

//(3)操作和处理DataSet

//(4)使用DataAdapter更新数据源

cs 复制代码
using (SqlConnection con = new SqlConnection("conn string"))
{
    //打开数据库连接
    con.Open();

    //DataAdapter用于从数据源检索数据并填充DataSet中的表(select command),
    //DataAdapter还将对DataSet的更改解析回数据源(InsertCommand、UpdateCommand或DeleteCommand)
    //创建DataAdapter,明确connection和command
    SqlDataAdapter sda = new SqlDataAdapter();
    sda.InsertCommand = new SqlCommand("Insert sql", con);
                
    //创建dataset对象
    DataSet ds = new DataSet("Users_ds");

    //从DataAdapter填充到DataSet
    //DataAdapter的Fill方法使用DataAdapter的SelectCommand的结果集来填充DataSet
    //Fill方法使用DataReader对象隐式的返回用于在DataSet上创建的表以及用于填充DataSet中的数据
    sda.Fill(ds);

    //操作和处理dateset
    Console.WriteLine($"id\tname");
    foreach (DataRow dr in ds.Tables["Users_ds"].Rows) 
    {
        Console.WriteLine($"dr[0]\tdr[1]");
    }
    //更新datesheet中第一行的指定字段数据
    ds.Tables[0].Rows[0]["name"] = "LittleStone";

    //将dateset数据更新到数据库
    sda.Update(ds);
}
相关推荐
曾经的三心草2 分钟前
redis-2-数据结构内部编码-单线程-String命令
数据结构·数据库·redis
二哈喇子!10 分钟前
基于SSM框架的公交车查询系统的设计与实现
java·数据库·ssm
Coder_Boy_26 分钟前
基于SpringAI的在线考试系统-智能考试系统-学习分析模块
java·开发语言·数据库·spring boot·ddd·tdd
阿杰 AJie30 分钟前
MySQL 聚合函数总表(完整版)
数据库·mysql
玄同76539 分钟前
Python「焚诀」:吞噬所有语法糖的终极修炼手册
开发语言·数据库·人工智能·python·postgresql·自然语言处理·nlp
cdut_suye41 分钟前
解锁函数的魔力:Python 中的多值传递、灵活参数与无名之美
java·数据库·c++·人工智能·python·机器学习·热榜
尽兴-43 分钟前
MySQL 8.0高可用集群架构实战深度解析
数据库·mysql·架构·集群·高可用·innodb cluster
遇见火星1 小时前
MySQL常用命令大全(2026最新版)
数据库·mysql·oracle
霖霖总总1 小时前
[小技巧42]InnoDB 索引与 MVCC 的协同工作原理
运维·数据库·mysql
未来之窗软件服务1 小时前
计算机等级考试—数据库完整性进销存—东方仙盟练气期
数据库·oracle·计算机软考·仙盟创梦ide·东方仙盟