ADO.NET 基本用法

ADO.NET概要

ADO.NET是.NET框架中的重要组件,主要用于完成C#应用程序访问数据库。

引用类

  • System.Data.Coummon 各种数据访问类的基类和接口
  • System.Data.SqlClient 对SQL SERVER进行操作的数据访问类

SqlConnection 数据库连接对象

​ Connection对象也称为数据库连接对象,Connection对象的功能是负责对数据源的连接。所有Connection对象的基类都是DbConnection类

  • 连接字符串

    • Data Source=.;Initial Catalog=MySchool1216;User ID=sa;Password=1234
    • SqlConnectionStringBuilder 对象拼接
  • 打开数据库连接

//拼接连接字符串工具 连接数据库
SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder();
scsb.DataSource = ".";
scsb.InitialCatalog = "MySchool1216";
scsb.UserID = "sa";
scsb.Password = "1234";

using (SqlConnection con = new SqlConnection(conStr))
{
    //如果con对象是关闭状态 那么就打开
    if (con.State == System.Data.ConnectionState.Closed)
    {
        con.Open(); //打开
    }
    Console.WriteLine("数据库连接已打开");
    //  con.Dispose(); //释放资源
    //  con.Close(); //关闭连接
}

SqlCommand 数据库操作命令对象

​ sqlCommand向服务器对象提交一个 sql语句

​ commandText属性为要执行的Sql命令;

常用方法:

ExecuteNonQuery() 返回受影响行数

执行数据库的增删改,返回受影响函数,(insert,delete,update)其他的语句返回-1;

增删改

using (SqlConnection conn = new SqlConnection(sqlStr))
{
    //打开数据库
    conn.Open();
    //sql语句
    string sql = "INSERT INTO Car([Title] ,[Speed] ,[Info]) VALUES('奇瑞' ,190,'国产轿车')";
    //创建命令对象 
    SqlCommand cmd = new SqlCommand(sql,conn);
    //接受返回结果
    int rows = cmd.ExecuteNonQuery();
    if(rows > 0)  MessageBox.Show("添加成功");
}
  • 防止sql注入
string sql = "INSERT INTO Car([Title] ,[Speed] ,[Info])VALUES(@Title,@Speed,@Info)";
//创建命令对象 
SqlCommand cmd = new SqlCommand(sql,conn);
//指定参数
cmd.Parameters.Add(new SqlParameter("@Title", txtTitle.Text));
cmd.Parameters.Add(new SqlParameter("@Speed", txtSpeed.Text));
cmd.Parameters.Add(new SqlParameter("@Info",txtInfo.Text));

ExecuteScalar() 返回第一行第一列数据

  • 查询总数
private void getCarCount()
{
    using (SqlConnection con = new SqlConnection(sqlStr))
    {
        //打开数据库连接
        con.Open();
        String sql = "select count(*) from Car";
        SqlCommand com = new SqlCommand(sql, con);
        //返回受影响行数 object类型
        object car = com.ExecuteScalar();

        lblCount.Text = "库存数:" + car.ToString();

    }
}

SqlDataReade() 返回数据集合

  • 查询所有信息
private void getCarDate()
{
    List<Car> cars = new List<Car>();

    using (SqlConnection con = new SqlConnection(sqlStr))
    {
        //打开数据库连接
        con.Open();
        string sql = "select * from Car";
        SqlCommand com = new SqlCommand(sql, con); 
        //返回结果集
        SqlDataReader reader = com.ExecuteReader();
		
        //循环遍历
        while (reader.Read())
        {
            //v, reader["title"], reader["speed"]), reader["info"])
            Car car = new Car();
            car.Id = Convert.ToInt32(reader["id"]);
            car.Title = reader["id"].ToString();
            car.Speed = reader["speed"].ToString();
            car.Info = reader["info"].ToString();
          
            cars.Add(car);
        }
        //数据展示到控件上
        dgvCarDate.DataSource = cars;
    }
}

封装连接数据库配配置字符串

  1. 在App.Config 文件中添加一个节点,添加配置信息

    <connectionStrings>
        <add name="conStr" connectionString="Data Source=.;Initial Catalog=MyCar;User ID=sa;Password=1234"/>
    </connectionStrings>
    
  2. 添加 using System.Configuration; 空间

  3. 读取配置文件中的字符串

    string sqlStr = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString;       
    

SqlDataAdapter 数据库适配器

posted on 2021-12-28 21:08  软嘴唇  阅读(131)  评论(0编辑  收藏  举报

导航