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;
}
}
封装连接数据库配配置字符串
-
在App.Config 文件中添加一个节点,添加配置信息
<connectionStrings> <add name="conStr" connectionString="Data Source=.;Initial Catalog=MyCar;User ID=sa;Password=1234"/> </connectionStrings>
-
添加 using System.Configuration; 空间
-
读取配置文件中的字符串
string sqlStr = ConfigurationManager.ConnectionStrings["conStr"].ConnectionString;