ADO.NET
ADO.NET常用的核心对象:
Connection:建立与数据库的连接。
SqlConnection conn(连接对象名) = new SqlConnection(连接字符串);
Command:对数据源执行命令(负责执行Sql语句)。
SqlCommand 命令对象名 = new SqlCommand(sql语句,Connection对象);
命令对象名.ExecuteNonQuery();多条数据()
命令对象.ExecuteScalar(); 一条数据
DataReader:从数据源中读取数据流(读取数据)。
SqlDataReader 读取器对象名 = 命令对象.command.ExecuteReader();
while(读取器对象名.Read())
{
读取多条。
}
DataAdapter:用于填充或更新数据。
SqlDataAdapter SqlDataAdapter对象名 = new SqlDataAdapter(SQL命令,数据库连接对象);
SqlDataAdapter对象名.Fill(数据集对象,需要添加表的名称);
SqlCommandBuilder SqlCommandBuilder对象 = new SqlCommandBuilder(SqlDataAdapter对象);
SqlDataAdapter对象.Update(数据集对象,需要提交的数据表的名称);
DataSet , "QQ"
DateSet:相当于临时数据库,存放在客户端内存中。
DataSet DataSet对象 = new DataSet(数据集对象);
DataSet对象.Tables[表索引或表名].Rows[行索引][列索引或列名];
DataGridView对象.DataSourrce = DataSet对象.Table[数据表名称或表索引];
属性
读取多个数据操作:
创建Connection对象并打开连接。
创建Command对象。
执行相应命令,获取DataReader对象。
使用DataReader对象读取数。( ExecuteReader()方法,执行sql语句 )
关闭DataReader对象。
关闭数据库连接。
如何建立与数据库的连接:
1.设置连接字符串
(1)SqlServer登录:
server=服务器名;database=数据库名;uid=用户名;pwd=密码
(2)Windows登录:
server=服务器名;database=数据库名;Integrated Security=true
2.创建连接对象
SqlConnection conn(连接对象名) = new SqlConnection(连接字符串);
3.打开连接
连接对象名.Open();
4.关闭连接
连接对象名.Close();
题目说明:有表userinfo(id,loginName,loginPwd,sex,age)共5列,其中id是自动增长的
1)添加一条记录
//1.创建链接对象,并打开链接
if(DBHelper.sqlConn.State==ConnectionState.Closed)
DBHelper.sqlConn.Open();
//2.定义要执行的SQL语句
String name = txtName.Text;
String pwd = txtPwd.Text;
String sex = txtSex.Text;
int age = int.Parse(txtAge.Text);
String sql = String.Format("insert into userinfo values('{0}','{1}','{2}',{3})",name,pwd,sex,age);
//3.创建Command命令对象
SqlCommand sqlCmd = new SqlCommand(sql,DBHelper.sqlConn);
//4.调用Command对象的ExecuteNonQuery()方法执行Sql语句
int rows=sqlCmd.ExecuteNonQuery();
if (rows > 0)
{
MessageBox.Show("添加成功!");
}
//5.关闭连接
DBHelper.sqlConn.Close();
2)将userinfo表的全部记录显示在ListView中
//1.创建链接对象,并打开链接
if (DBHelper.sqlConn.State == ConnectionState.Closed)
DBHelper.sqlConn.Open();
//2.定义要执行的SQL语句
String sql = "select * from userinfo";
//3.创建Command命令对象
SqlCommand sqlCmd = new SqlCommand(sql, DBHelper.sqlConn);
//4.调用Command对象的ExecuteReader()方法执行Sql语句,并用DataReader对象装载查询的结果集
SqlDataReader sqlReader = sqlCmd.ExecuteReader();
//5.从DataReader读取数据
while (sqlReader.Read())
{
ListViewItem item = new ListViewItem();
item.SubItems[0].Text = sqlReader[0].ToString();
item.SubItems.Add(sqlReader[1].ToString());
item.SubItems.Add(sqlReader[2].ToString());
item.SubItems.Add(sqlReader[3].ToString());
this.listView1.Items.Add(item);
}
sqlReader.Close();
//6.关闭连接
DBHelper.sqlConn.Close();
3)使用DataSet和SqlDataAdapter查询userinfo表中全部的数据,并显示在DataGridView1控件中
//(1)创建链接(DBHelper)
//(2)创建要执行的sql语句
String sql = "select * from userinfo";
//(3)创建DataSet对象
DataSet ds1 = new DataSet();
//(4)创建适配器对象
sqlApt = new SqlDataAdapter(sql,DBHelper.sqlConn);
//(5)填充数据集 注意:此处的uinfo名称可以任意设置,但是要前后一致
sqlApt.Fill(ds1,"uinfo");
//(6)设置dataGridView1的数据源(实现数据绑定)
this.dataGridView1.DataSource = ds1.Tables["uinfo"];
4)使用DataSet和SqlDataAdapter、DataGridView实现更新
//(1)创建SqlCommandBuilder对象:负责产生对应的sql语句
SqlCommandBuilder sqlBuilder = new SqlCommandBuilder(sqlApt);
//(2)调用update()
sqlApt.Update(ds1, "uinfo");
//(3)提示成功!
MessageBox.Show("update is success!");
1.ADO.NET组成
1).Net数据提供程序
xxConnection:连接数据库对象
xxCommand:执行数据库操作命令
xxDataReader:只进,只读,快速读取数据
xxDataAdapter:负责数据库与DataSet直接的交互
2)数据集(DataSet)
数据表,数据行,数据列,约束
2.执行增删改查操作
1)增加数据
(1)连接数据库
SqlConnection conn=new SqlConnection(连接字符串);
(2)创建Command对象
SqlCommand cmd=new SqlCommand(Sql语句,连接对象(conn));
(3)打开连接数据对象
conn.Open();
(4)执行增加数据的Sql语句
cmd.ExecuteNonQuery();
(5)关闭连接对象
conn.Close();
2)修改数据
(1)连接数据库
SqlConnection conn=new SqlConnection(连接字符串);
(2)创建Command对象
SqlCommand cmd=new SqlCommand(Sql语句,连接对象(conn));
(3)打开连接数据对象
conn.Open();
(4)执行修改数据的Sql语句
cmd.ExecuteNonQuery();
(5)关闭连接对象
conn.Close();
3)删除数据
(1)连接数据库
SqlConnection conn=new SqlConnection(连接字符串);
(2)创建Command对象
SqlCommand cmd=new SqlCommand(Sql语句,连接对象(conn));
(3)打开连接数据对象
conn.Open();
(4)执行删除数据的Sql语句
cmd.ExecuteNonQuery();
(5)关闭连接对象
conn.Close();
4)查询数据
(a)使用DataReader
(1)连接数据库
SqlConnection conn=new SqlConnection(连接字符串);
(2)创建Command对象
SqlCommand cmd=new SqlCommand(Sql语句,连接对象(conn));
(3)打开连接数据库对象
conn.Open();
(4)执行查询的Sql语句
SqlDataReader reader=cmd.ExecuteReader();
while(reader.read()){
//方法一
Convert.ToInt32(reader["列名"])
//方法二
reader.GetInt(0);
}
(5)关闭连接对象
conn.Close();
b)使用DataAdapter
(1)连接数据库
SqlConnection conn=new SqlConnection(连接字符串);
(2)创建DataSet对象
DataSet ds=new DataSet();
(3)执行查询的Sql语句
SqlDataAdapter sda=new SqlDataAdapter(Sql语句,conn);
(4)填充数据集
sda.Fill(ds,"数据表名");
3.三层搭建
1)创建空白解决方案 2)创建表示层项目(Window窗体程序,Web应用程序)
3)创建业务逻辑层项目(类库)
4)创建数据访问层项目(类库)
5)创建业务实体层项目(类库)
6)建立各层之间的依赖关系