正在学习数据库相关内容如,做个记录,加深印象!
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的第三列--标题不会改变
结果如下:
暂时就这些了,以后学会其他的再续上。