问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

ADO.NET操作SQL Server数据库详解

创作时间:
作者:
@小白创作中心

ADO.NET操作SQL Server数据库详解

引用
CSDN
1.
https://blog.csdn.net/weixin_44279482/article/details/136682094

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数据库查询

using (SqlConnection conn = new SqlConnection())
{
    // 创建打开连接
    conn.ConnectionString = "Server=你的服务器地址;Database=你的数据库名;User Id=你的用户名;Password=你的密码;";
    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()方法执行数据库记录插入操作,并根据返回的结果判断插入的结果
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");
    // 执行插入操作ExecuteNonQuery()
    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更新数据源
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.SelectCommand = new SqlCommand("select sql", con);
                
    // 创建dataset对象
    DataSet ds = new DataSet("Users_ds");
    // 从DataAdapter填充到DataSet
    // DataAdapter的Fill方法使用DataAdapter的SelectCommand的结果集来填充DataSet
    // Fill方法使用DataAdapter对象隐式的返回用于在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);
}
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号