【第一次课】
一、表结构
商品表:products
列名 含义
pid 商品编号,主键、标识列
pname 商品名称
price 商品价格
pnum 商品数量
type 商品类型
time 进货时间
--增加 insert
insert into products values('爽歪歪',2,100,'饮料',GETDATE())
--删除 delete
delete from products where pid=1
--修改 update
update products set pnum=pnum-1 where pid=1
二、连接数据库的步骤
1、准备工作:引入工具包
using System.Data.SqlClient;
2、确定目标(连接字符串)
string constr="server=.;database=dbName;uid=sa;pwd=123";
3、修通道(连接对象)
SqlConnection con=new SqlConnection(constr);
4、打开通道
con.Open();
5、确定命令
string sql="";
6、雇人(命令对象)
SqlCommand cmd=new SqlCommand(sql,con);
7、执行命令
cmd.ExecuteNonQuery();
8、关闭通道
con.Close();
【第二次课】
数据查询:
1、单值查询(1行1列):一般用于聚合函数
SqlCommand.ExecuteScalar()
返回查询结果集中的第1行第1列,object类型
2、多值查询(多行1列)
SqlCommand.ExecuteReader()
返回读取器对象,SqlDataReader类型
while(dr.Read())//前进到下一条记录
{
//根据列名获取数据,返回object类型
object obj=dr["列名"];
}
3、多值查询(多行多列)
ListView控件:列表视图控件
1-Name:命名-lv+意义
2-View:用来设置ListView的视图模式
LargeIcon-大图标:默认为大图标
SmallIcon-小图标
List-列表
Details-详细信息:表格形式,可以显示列标题
3-Columns:用来设置列标题集合
Text:该列显示的标题文本
4-Items:表示ListView控件的所有项集合
5-ListViewItem类:表示ListView控件中的一项
使用ListView显示数据:
1、设置View属性为Details
2、通过Columns属性,设置列标题
3、通过SqlDataReader对象,循环读取数据
while(dr.Read())
{
//1-创建ListView的项(行),ListViewItem对象
ListViewItem item = new ListViewItem();
//2-指定该项各列的值:只能是string类型的值
//第1列
item.Text = dr["列名"].ToString();
//其他列
item.SubItems.Add(dr["列名"].ToString());
//3-将该项添加到ListView的Items集合中
lvInfo.Items.Add(item);
}
SqlCommand命令对象的三个方法:
1、ExecuteNonQuery()
执行增、删、改语句,并返回受影响的行数,类型为int
2、ExecuteScalar()
执行查询语句,返回结果集中的第1行第1列,类型为object
3、ExecuteReader()
执行查询语句,返回SqlDataReader对象,再根据SqlDataReader逐行读取数据
注意:如果使用ExecuteNonQuery执行查询语句,返回结果为-1
【第三次课】
一、使用数据集与适配器进行查询
1、数据集:DataSet,类似于数据库,可理解为内存中的临时数据库
2、适配器对象:SqlDataAdapter,可以理解为运输工具卡车
注意:该操作可以自动打开和关闭数据库连接
二、DataGridView控件:网格控件,用来以表格的形式显示数据
1、命名-dgv+意义
2、AutoGenerateColumns:设置是否允许DataGridView控件自动创建列(true-允许,false-不允许)
3、添加列,编辑列
3-1、HeaderText:设置列标题
3-2、DataPropertyName:设置该列显示数据库中哪列值,列名
4、DataSource:设置显示的数据源