正在学习数据库相关内容如,做个记录,加深印象!
Q:[图片太小看不清怎么办?]
R:[在图片上右击选择在新标签页打开图片]
1.使用Office Access创建名为Data.mdb的数据库,文件位置位于桌面
C:\Users\Administrator\Desktop\Data.mdb(程序里要用到的!)
(长这样!)
然后,Data内含有两个文件:data1和data2,我们用的是data1
data1的内容如下:
2.建立VS项目
在winform上添加datagridview控件
3.编写“加载数据”按钮程序
DataSet ds = new DataSet();//DataSet可理解成内存中的数据库
OleDbCommand comm = new OleDbCommand();//OleDbCommand表示要对access数据源执行的sql语句或存储过程
OleDbDataAdapter da = new OleDbDataAdapter();//leDbDataAdapter担当 DataSet和数据源之间的桥梁,用于检索和保存数据
//data.mdb文件位置
string ConnectionStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @"C:\Users\Administrator\Desktop\data.mdb;";
/* 1.若我们新建的data.mdb文件文件位于当前程序的启动位置,则语句改为:
* string ConnectionStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Application.StartupPath ";
* 2.代码中Provider引擎可有2种写法:
* Provider=Microsoft.ACE.OLEDB.12.0;
* Provider=Microsoft.Jet.OLEDB.4.0;
* 区别:
* ACE引擎,既可以访问Office 97-2003,也可以访问Office 2007 。
* Jet 引擎,可以访问 Office 97-2003,但不能访问 Office 2007。
* 所以,如果access数据库后缀名为.accdb(2007)就不能用jet引擎了。*/
OleDbConnection sda = new OleDbConnection(ConnectionStr);//定位到要连接的数据库
sda.Open();//打开数据库,准备操作
comm.Connection = sda;//连接
comm.CommandType = CommandType.Text;//...(不会解释,VS自带的解释不太懂)
以上过程VS已经连接到了我们创建的data.mdb数据库了,接下来进行数据的读操作
4.读取数据库数据
(1).显示数据库全部数据
comm.CommandText = "select * from data1";//选取data1
da.SelectCommand = comm;//官方定义:获取或设置SQL语句或存储过程,用于选择数据源中的记录
da.Fill(ds);//将从数据库中获取的数据添加到DataSet内
dgv.DataSource = ds.Tables [0].DefaultView;//datagridview绑定数据源进行显示
sda.Close();//断开数据库的连接,很重要!
结果如下:
(2)显示多行(连续)
comm.CommandText = "select top 5 * from data1";//选取data1的前5行
da.SelectCommand = comm;//官方定义:获取或设置SQL语句或存储过程,用于选择数据源中的记录
da.Fill(ds);//将从数据库中获取的数据添加到DataSet内
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview绑定数据源进行显示
sda.Close();//断开数据库的连接,很重要!
结果如下:
(3)显示多行(非连续)
comm.CommandText = "select * from data1 where 序号 = '8' or 序号 = '2' or 序号 = '5'";
//查询表内序号为8//2/5的行
da.SelectCommand = comm;//官方定义:获取或设置SQL语句或存储过程,用于选择数据源中的记录
da.Fill(ds);//将从数据库中获取的数据添加到DataSet内
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview绑定数据源进行显示
sda.Close();//断开数据库的连接,很重要!
结果如下:
显示非连续多行的方法还有其他语句可实现,可我不会!
(4)显示多列
comm.CommandText = "select * from data1";//选取data1
da.SelectCommand = comm;//官方定义:获取或设置SQL语句或存储过程,用于选择数据源中的记录
da.Fill(ds);//将从数据库中获取的数据添加到DataSet内
DataTable dat = ds.Tables[0].DefaultView.ToTable(false, new string[] { "学号", "班级", "合格标记" });
//从DataSet内提取 学号,班级,合格标记 三列内容
dgv.DataSource = dat.DefaultView;//datagridview绑定数据源进行显示
sda.Close();//断开数据库的连接,很重要!
结果如下:
(5)显示单列(根据列标题索引)
comm.CommandText = "select 学号 from data1";//选取data1内列名称为“学号”的列
da.SelectCommand = comm;//官方定义:获取或设置SQL语句或存储过程,用于选择数据源中的记录
da.Fill(ds);//将从数据库中获取的数据添加到DataSet内
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview绑定数据源进行显示
sda.Close();//断开数据库的连接,很重要!
结果如下:
(6)条件筛选
s1:筛选空单元格行
comm.CommandText = "select * from data1 where ISNULL(合格标记)";//筛选合格标记列含空单元格的行
da.SelectCommand = comm;//官方定义:获取或设置SQL语句或存储过程,用于选择数据源中的记录
da.Fill(ds);//将从数据库中获取的数据添加到DataSet内
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview绑定数据源进行显示
sda.Close();//断开数据库的连接,很重要!
结果如下:
s2:多条件筛选(and)
comm.CommandText = "select * from data1 where 分数 < '3.6' and 学号 > '000031224217'";
//筛选分数小于3.6并且 学号大于000031224217的数据
da.SelectCommand = comm;//官方定义:获取或设置SQL语句或存储过程,用于选择数据源中的记录
da.Fill(ds);//将从数据库中获取的数据添加到DataSet内
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview绑定数据源进行显示
sda.Close();//断开数据库的连接,很重要!
结果如下:
s3:多条件筛选(or)
comm.CommandText = "select * from data1 where 序号 = '3' or 序号 = '9'";
//筛选序号等于3或9的数据
da.SelectCommand = comm;//官方定义:获取或设置SQL语句或存储过程,用于选择数据源中的记录
da.Fill(ds);//将从数据库中获取的数据添加到DataSet内
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview绑定数据源进行显示
sda.Close();//断开数据库的连接,很重要!
结果如下:
s4:多条件筛选(in)
comm.CommandText = "select * from data1 where 序号 in('3','9')";
//筛选序号等于3或9的数据
da.SelectCommand = comm;//官方定义:获取或设置SQL语句或存储过程,用于选择数据源中的记录
da.Fill(ds);//将从数据库中获取的数据添加到DataSet内
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview绑定数据源进行显示
sda.Close();//断开数据库的连接,很重要!
结果如下:
(7)datagridview数据显示调整
以数据全部显示为例
comm.CommandText = "select * from data1";//选取data1
da.SelectCommand = comm;//官方定义:获取或设置SQL语句或存储过程,用于选择数据源中的记录
da.Fill(ds);//将从数据库中获取的数据添加到DataSet内
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview绑定数据源进行显示
sda.Close();//断开数据库的连接,很重要!
dgv.Columns[2].DataPropertyName = ds.Tables[0].Columns[3].ToString();
//将数据库第三列的数据显示在datagridview的第四列--标题不会改变
结果如下:
调整列:
comm.CommandText = "select * from data1";//选取data1
da.SelectCommand = comm;//官方定义:获取或设置SQL语句或存储过程,用于选择数据源中的记录
da.Fill(ds);//将从数据库中获取的数据添加到DataSet内
dgv.DataSource = ds.Tables[0].DefaultView;//datagridview绑定数据源进行显示
sda.Close();//断开数据库的连接,很重要!
dgv.Columns[2].DataPropertyName = ds.Tables[0].Columns[3].ToString();
//将数据库第三列的数据显示在datagridview的第四列--标题不会改变
dgv.Columns[3].DataPropertyName = ds.Tables[0].Columns[2].ToString();
//将数据库第四列的数据显示在datagridview的第三列--标题不会改变
结果如下:
暂时就这些了,以后学会其他的再续上。