ADO.NET五大对象:客户端操作数据库服务器。所谓的数据的增删差改。
1.连接(Connection):连接制定的服务器。
给定连接字符串。对于我们的SQL SERVER来说可以有WINDOWS身份验证和SQL身份验证。一般用SQL身份验证,就需要指定:数据源(就是对应的数据库服务器的实例名称)、数据库、SQL身份验证用户名、密码
using System.Data.SqlClient; //导入命名空间
SqlConnection con=new SqlConnection("Data Source=.;Database=aa;uid=sa;pwd=123"); //连接字符串
con.Open(); //打开连接
con.Close(); //关闭连接
//aa代表数据库
2.命令(Command):执行相应的SQL命令。在实例化的时候,需要指定:连接对象、sql语句。
SqlCommand cmd=new SqlCommand("select count(*) from 用户 where 用户名='"+textBox1.Text+"' and 密码='"+textBox2.Text+"'",con);
int i=(int)cmd.ExecuteScalar();
//SqlCommand这个类有三个执行的实例方法,ExecuteScalar():执行指定SQL语句并返回结果集中第一行第一列的数据,返回值就是object类型。、ExecuteNonQuery():执行SQL语句并返回所影响的行数(不能返回一张表)。一般用在修改数据、插入数据和删除数据的SQL语句。
、ExecuteReader():执行SQL语句并返回一个SqlDataReader对象(返回的一个方法),插入,返回的结果(返回是一张有结果的表)。有查询有结果
if(i==0)
{
//登录失败
}
else
{
//登录成功
}
3.数据阅读器(DataReader):以只进的方式一条一条的读取结果集中的数据。这种读取用在少量的数据的查询中。
//从数据库中读取所有用户表中的用户名,加载到ComboBox控件上。
SqlConnection con = new SqlConnection("Data Source=.;Database=aa;uid=sa;pwd=123");
con.Open();
SqlCommand cmd = new SqlCommand("select 用户名 from 用户", con);
SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
comboBox1.Items.Add(dr[0].ToString());
}
con.Close();
4.数据集(DataSet):是由数据表(DataTable)的集合构成。理解为一段查询后的数据的缓冲的存储。一般和数据适配器(DataAdapter)连用。将适配器对应查询出的结果填充到数据集中。然后再数据集中操作。
DataSet ds = new DataSet(); //定义一个数据集对象
DataTable dt = new DataTable(); //定义一个数据表对象
DataColumn dc = new DataColumn("姓名", typeof(string)); //定义一个数据列对象,名称为“姓名”,数据类型为字符串类型
dt.Columns.Add(dc); //把这个数据列对象添加到数据表的列集合中
DataColumn dc2 = new DataColumn("性别", typeof(string)); //定义一个数据列对象,名称为“性别”,数据类型为字符串类型
dt.Columns.Add(dc2); //把这个数据列对象添加到数据表的列集合中
dt.Rows.Add("aa","男"); //添加数据行
dt.Rows.Add("bb","女");
dt.Rows.Add("cc","女");
ds.Tables.Add(dt); //将数据表添加到数据集的表集合中
dataGridView1.DataSource = ds.Tables[0]; //设置数据网格显示控件的数据源属性为这个数据集的第一个数据表。最终显示出来。
//for (int i = 0; i < ds.Tables[0].Rows.Count; i++) //遍历数据集中的第一个数据表有多少行
//{
// comboBox3.Items.Add(ds.Tables[0].Rows[i][0]); //把数据集中的第一个数据表中的每一行的第一列的数据添加到comboBox3的集合中。
//}
//comboBox3.DataSource = ds.Tables[0]; //另一种设置方式,直接把数据集的第一个表作为comboBox3的数据源。
//comboBox3.DisplayMember = "姓名"; //并在显示成员上设置为要显示的列的名称即可。
5.数据适配器(DataAdapter)
SqlConnection con = new SqlConnection("Data Source=.;Database=aa;uid=sa;pwd=123");
con.Open();
SqlDataAdapter sda = new SqlDataAdapter("select 用户名,密码 from 用户", con);
DataSet ds=new DataSet();
sda.Fill(ds);
con.Close();
dataGridView1.DataSource = ds.Tables[0];
-----------------JM------------------------
ADO.NET五大对象:客户端操作数据库服务器。所谓的数据库增删差改。
1.连接对象(connection):连接指定的服务器
给定连接字符串。对于我们的SQL SERVER 来说可以有WINDOWS身份验证和SQL身份验证。一般用SQL身份验证,就需要指定:数据源(就是对应的数据库服务器的实例名称)、数据库、SQL身份验证用户名、密码
using System.Data.SqlClient; 必须导入的命名空间
SqlConnectin con=new SqlConnection("Data Source=.;Database=aa;uid=sa;pwd=123");
con.Open(); //打开连接
con.Close(); //关闭连接
//aa:代表数据库
2.命令(command):执行相应的SQL命令。在实例化的时候,需要指定:连接对象、sql语句。
SqlCommand cmd=new SqlCommand("select count(*) from 用户 where 用户名='"+textBox1.Text+"' and 密码='"+textBox2.Text+"'",con);
int i=(int)cmd.ExecuteScalar();
//SqlCommand这个类有三个执行的实例方法,ExecuteScalar():执行指定SQL语句并返回结果集中第一行第一列的数据,返回值就是object类型。、、ExecuteNonQuery():执行SQL语句并返回所影响的行数。一般用在修改数据、插入数据和删除数据的SQL语句,、、ExecuteReader():执行SQL语句并返回一个SqlDataReader对象。
if(i==0)
{
MessageBox.Show("登录失败");
}
else
{
MessageBox.Show("登录成功");
}
cmd.ExecuteNonQuery(); //int类型
会返回一个SqlDataReader类型的, 类似于在服务器中查询结果的指针. 服务器连接中断就会无法查询.
3.数据阅读器(DataReader):以只进的方式一条一条的读取结果集中的数据,这种读取用在少量的数据的查询中。
//从数据库中读取所有用户表中的用户名,加载到comboBox控件上。
SqlConnectin con=new SqlConnection("Data Source=.;Database=aa;uid=sa;pwd=123");
con.Open(); //打开连接
SqlCommand cmd=new SqlCommand("select 用户名 from 用户",con);
SqlDataReader dr=cmd.ExecuteReader();
while(dr.Read())
{
comboBox1.Items.Add(dr[0].ToString());
}
con.Close(); //关闭连接
4.数据集(DataSet):是由数据表(DataTable)的集合构成。理解为一段查询后的数据的缓冲的存储。一般和数据适配器(DataAdapter)连用。将适配器对应查询出的结果填充到数据集中。染后再数据集中操作。
DataSet ds = new DataSet(); //定义一个数据集对象
DataTable dt = new DataTable(); //定义一个数据表对象
DataColumn dc = new DataColumn("姓名",typeof(string)); //定义一个数据列对象,名称为“姓名”,数据类型为字符串类型
dt.Columns.Add(dc); //把这个数据列对象添加到数据表的列集合中
DataColumn dc2 = new DataColumn("性别", typeof(string)); //定义一个数据列对象,名称为“姓名”,数据类型为字符串类型
dt.Columns.Add(dc2); //把这个数据列对象添加到数据表的列集合中
dt.Rows.Add("aa","男"); //添加数据行
dt.Rows.Add("bb","女");
dt.Rows.Add("cc","男");
ds.Tables.Add(dt); //将数据表添加到数据集的表集合中
dataGridView1.DataSource = ds.Tables[0]; //设置数据网格显示控件的数据源属性为这个数据集的第一个数据表,最终显示出来。
for (int i = 0; i < ds.Tables[0].Rows.Count; i++) //遍历数据集中第一个数据表有多少行
{
comboBox3.Items.Add(ds.Tables[0].Rows[i][0]); //把数据集中第一个数据表中的每一行的第一列的数据添加到comboBox3的集合中
}
//comboBox3.DataSource = ds.Tables[0]; //另一种设置方式,直接把数据集的第一个表作为comboBox3的数据源。
//comboBox3.DisplayMember = "姓名"; //并在显示成员上设置为要显示的列的名称即可。
5.数据适配器(DataAdapter)
SqlConnection con=new SqlConnection("Data Source=.;Database=aa;uid=sa;pwd=123");
con.Open();
SqlDataAdapter sda=new SqlDataAdapter("select 用户名,密码 from 用户",con);
DataSet ds=new DataSet(); //定义一个数据集对象
sda.Fill(ds); //执行数据适配器里的查询语句,并将结果填充到数据集ds中
con.Close();
dataGridView1.DataSource=ds.Tables[0]; //设置数据网格显示控件的数据源属性为这个数据集的第一个数据表,最终显示出来。
默写作业----------------------------------
1.登录
表 用户(用户名,密码)
textBox1 textBox2
2.用适配器和数据集对象,从用户表查询出所有的用户信息,包括用户名和密码显示在控件DataGridView1上。
1. 方法一
using System.Data.sqlClient;
SqlConnection con=new SqlConnection("Data Source=.;Database=aa;uid=sa;pwd=123");
con.Open();
SqlCommand cmd=new SqlCommand("select count(*) from 用户 where 用户名='"+textBox1.Text+"' and 密码='"+textBox2.Text+"'",con);
int i=(int)cmd.ExecuteScalar();
if(i==0)
{MessageBox.Show("登录失败");}
else
{MessageBox.Show("登录成功");}
con.Close();
方法二
SqlConnection con=new SqlConnection("Data Source=.;Database=aa;uid=sa;pwd=123");
con.Open();
SqlCommand cmd=new SqlCommand("select 用户名 from 用户 where 用户名='"+textBox1.Text+"' and 密码='"+textBox2.Text+"'",con);
SqlDataReader sdr=cmd.ExecuteReader
if(sdr.Read())
{MessageBox.Show("登录成功");}
else
{MessageBox.Show("登录失败");}
con.Close();
2. 方法一
SqlConnection con=new SqlConnection("Data Source=.;Database=aa;uid=sa;pwd=123");
con.Open();
SqlDataAdapter sda=new SqlDataAdapter("select 用户名,密码 from 用户",con);
DataSet ds=new DataSet();
sda.Fill(ds);
con.Close();
dataGridView1.DataSource=ds.Tables[0];
方法二
SqlConnection con=new SqlConnection("Data Source=.;Database=aa;uid=sa;pwd=123");
con.Open();
SqlDataAdapter sda=new SqlDataAdapter("select 用户名,密码 from 用户",con);
DataTable dt=new DataTable();
sda.Fill(dt);
con.Close();
dataGridView1.DataSource=dt;
▲----------------------
SqlCommand对象>>>>
SqlCommand cmd=new SqlCommand(strSql,con);
SqlDataReader dr=cmd.ExecuteReader();
//执行ExecuteNonQuery方法执行
cmd.ExecuteNonQuery();
SqlDataReader对象----------------------
//读取数据阅读器中的数据记录
dr.Read();
//数据阅读器中一条记录的address字段
dr["address"]
SqlDataAdapter对象-----------------
//创建SqlCommand对象cmd,来解析执行T-SQL
SqlDataAdapter sda=new SqlDataAdapter(strSQL,con);
//创建数据集对象,用来存放数据
DataSet ds=new DataSet();
//调用Fill()方法将查询到的数据填充到DataSet对象
sda.Fill(ds);
DataSet对象---------------------
//获取数据集中第一条记录的(name字段值)
ds.Tables[0].Rows[0]["name"]
//全选,全不选
if(cb_all.Checked)
{
foreach(RepeaterItem item in Repeater1.Items)
{
CheckBox cb=(CheckBox).item.FindControl("cb_one");
}
}
连接数据库
string connstr = "Data Source=LONG-PC\\LONG;Initial Catalog=Blog;User ID=long;Password=longtao";
string cmdstr = "select 姓名,年龄 from Test";
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = cmdstr;
cmd.Connection = conn;
SqlDataAdapter adap = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adap.Fill(ds);
dataGridView1.DataSource = ds.Tables[0].DefaultView;
string connstr = "Data Source=LONG-PC\\LONG;Initial Catalog=Blog;User ID=long;Password=longtao";
string cmdstr = "select 姓名,年龄 from Test";
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
SqlCommand cmd = new SqlCommand();
cmd.CommandText = cmdstr;
cmd.Connection = conn;
SqlDataAdapter adap = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adap.Fill(ds);
dataGridView1.DataSource = ds.Tables[0].DefaultView;
===================================
DataSet:
-==DataAdapter
===
===========
dataReader:
=====
数据集: