创意电子
标题: C#与数据库完善联合,数据操纵简单实用,快速读取数据 [打印本页]
作者: 什来之比 时间: 2021-8-28 11:37
标题: C#与数据库完善联合,数据操纵简单实用,快速读取数据
连接数据库有两种方法:
使用数据源设置向导连接
通过编写程序代码来连接
使用“数据源设置向导”产生数据集举行连接数据库
创建窗体后,点击view查看菜单后选择other windows其他窗口,展开第二层菜单选项,点击数据源指令,打开“数据源窗口”:
数据源设置向导
在数据源窗口点击左上角的图标“添加新数据源”,打开“数据源设置向导”窗口:
数据源设置向导窗口
选择数据源类型,选择database数据库,单击next下一步:
选择数据源类型
选择数据集,单击next下一步:
选择数据集
选择数据连接,单击new connection新建连接按钮,进入选择数据源对话框:
选择数据连接
在数据源中选择“Microsoft access database file”,单击ok按钮进入添加连接对话框:
添加连接
点击browse欣赏按钮加入一个access数据库:
连接access数据库
单击test connection测试连接按钮,表现测试连接乐成的消息框:
测试连接
下一步后,由于数据库文件并非与项目在同一文件夹下,以是会表现以下告诫信息,提示是否要把数据库复制到当前的项目中,单击“是”继续:
把数据库复制到当前的项目中
接着,勾选yes,save the connection as复选框,将连接字符串保存到应用程序设置文件当中,单击next继续:
保存连接字符串
所有的数据表都在tables当中,展开数据表后,勾选所需要的数据表:
数据表
点击finish完成即可,此时可以看到数据库加入到了项目当中。此时,可以查看数据库中的数据,右键点击鼠标选择retrieve data:
查看数据表
查看数据表中的数据:
查看数据表中的数据
通过程序代码连接数据库,举行提取存入数据
用程序代码来实现与Access数据库的连接,并举行提取和存入数据,包罗以下四个步骤:
导入相关的命名空间
用connection对象来连接数据库
创建command对象,并执行布局查询语句
用DataReader对象来获取查询结果
导入命名空间:
使用System.Data.OleDb命名空间,适用于Access数据库,system.data.oledb命名空间的常用类如下:
OleDbCommand(针对数据源执行的SQL语句或者存储过程)OleDbConnection(建立数据源的连接)OleDbDataAdapter(数据命令集和数据库连接,用来填入DataSet并更新数据源)OleDbDataReader(提供数据源读取数据行的方法)创建项目后,如果想要连接Access数据库,则必须导入System.Data.OleDb命名空间:
using System.Data.OleDb;用connection对象连接数据库:
不同的数据库需要不同的connection对象,Access数据库使用OLEDB,以是要用OleDbConnection 对象来创建连接,其构造函数的语法是:
public oledbconnection(string connectionstring);connectionstring表示用来打开数据库的连接。以是,要用OleDbConnection类来创建对象并指定连接的字符串。
下面来创建OleDbConnection对象conn,并指定连接字符串:
OleDbConnection conn;conn=new OleDbConnection(connstring);这里面connstring为指定命据源的连接字符串:
connstring = "Provider=microsoft.ace.oledb.12.0;Data Source=G:\data.accdb"Provider属性:如果使用Access2007以后的版本,则用“microsoft.ace.oledb.12.0”,否则对于低版本的则使用“microsoft.jet.oledb.4.0”
Data Source属性:数据源,指定目的文件所在路径
在完成connection对象创建后,用Open方法来打开数据库:
OleDbConnection类的常用成员有:ConnectionString,获取或者设置打开数据库的字符串ConnectionTimeout:产生错误前实验终止连接的等待时间Database:获取或设置要连接的数据库名称DataSource:获取或设置要连接的数据源名称Provider:获取连接字符串Close():关闭数据库的连接Dispose():释放所占用的资源Open():打开数据库的连接连接数据库后,就可以读取数据库中数据表中的数据。
可以使用DataAdapter类举行载入数据,下面这段程序代码就可以实现数据的读取任务了,不过要在界面放入一个dataGridView控件,可以借助它来表现数据库中的内容,请看下面的代码:
string connstring;OleDbConnection conn;connstring = @"Provider = microsoft.ace.oledb.12.0;Data Source = F: \学生数据库.accdb";conn=new OleDbConnection(connstring);OleDbDataAdapter copp = new OleDbDataAdapter("select * from 学生信息表", conn);DataSet ds = new DataSet();copp.Fill(ds, "学生信息表");this.dataGridView1.DataSource = ds.Tables["学生信息表"].DefaultView;conn.Close();conn.Dispose();上面值得说明的是DataAdapter类的方法Fill的作用是将数据表的数据加载到DataSet对象中,然后指定dataGridView控件的DataSource属性表现数据表中的内容:
this.dataGridView1.DataSource = ds.Tables["学生信息表"].DefaultView;运行程序:
运行
点击读取数据库:
读取数据
数据表更新操作
建立连接数据库:
connstring = @"Provider = microsoft.ace.oledb.12.0;Data Source =G:\personal\个人数据库.accdb";conn=new OleDbConnection(connstring);打开已经建立连接的access数据库:
conn.Open();通过CommandText写查询语句,查询语句语法格式与access数据库基本相同:
CommandText = "update 学生信息 set 所在城市='北京' where 姓名 like '%张%'";此语句是将学生信息表中姓张的同砚住所都改成了北京。
通过ExecuteNonQuery运行查询语句:
ExecuteNonQuery();当运行程序时已经对建立连接数据库中的数据举行了修改。
关闭释放连接:
conn.Close();conn.Dispose();运行程序:
更新数据库
点击运行后,打开数据库:
修改前:
修改前数据
修改之后,姓张的住所修改成了北京:
修改后数据
完备程序代码:
namespace connectionaccess{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //OleDbConnection(string connectionstring); string connstring; OleDbCommand aa = new OleDbCommand(); OleDbConnection conn; connstring = @"Provider = microsoft.ace.oledb.12.0;Data Source =G:\personal\个人数据库.accdb"; conn=new OleDbConnection(connstring); //OleDbDataAdapter copp = new OleDbDataAdapter("update 学生信息 set 所在城市='北京' ", conn); conn.Open(); aa.Connection = conn; aa.CommandText = "update 学生信息 set 所在城市='北京128' where 姓名 like '%张%'"; aa.ExecuteNonQuery(); //DataSet ds = new DataSet(); //copp.UpdateCommand.UpdatedRowSource; //copp.Fill(ds, "学生信息表"); //this.dataGridView1.DataSource = ds.Tables["学生信息表"].DefaultView; conn.Close(); conn.Dispose(); //conn.Open(); MessageBox.Show("运行竣事"); } }} 使用变量查询字符串数据
变量与常量不同,变量的值在程序运行过程中可以随时改变,在数据库系统应用程序开发中,可能将相应的数据经过一系列的运算后赋给一个变量,因此,在查询中对于变量的查询也是非常重要的,下面介绍变量字符串数据的查询。
根据用户输入的查询信息,生成数据库查询字符串,从而实现变量字符串的查询。
打开Visual C#开发情况,新建一个windows窗体应用程序,对窗体举行简单计划,添加一个textBox控件,一个lable控件,一个button控件和一个dataGridView控件,计划布局如下图:
窗体界面计划
双击查询信息后,键入下列程序代码:
string name = textBox1.Text;界说字符串变量存放输入信息string connstring; 界说数据库连接字符串OleDbConnection conn; 界说数据库连接connstring =@"provider = microsoft.ace.oledb.12.0;Data Source = F:\个人数据库.accdb";连接个人数据库字符串conn = new OleDbConnection(connstring);实例化连接string sq1 = string.Format("select * from 学生信息表 where 姓名='{0}'", name);界说变量条件查询字符串OleDbDataAdapter copp = new OleDbDataAdapter(sq1, conn); 界说并实例化数据库对象DataSet ds = new DataSet(); 界说数据集copp.Fill(ds, sq1);实例化查询this.dataGridView1.DataSource = ds.Tables[sq1].DefaultView;表现查询结果conn.Close();关闭数据库连接conn.Dispose();释放对象 运行程序:
查询数据
输入学生姓名孙菲菲,点击查询信息:
查询信息
只表现孙菲菲的信息,通过输入不同砚生姓名,可实现不同变量的信息查询。
焦点语句为:
string sq1 = string.Format("select * from 学生信息表 where 姓名='{0}'", name);通过设置不确定的姓名变量name来实现不同砚生信息的查询
完备程序代码如下:
namespace connectionaccess{ public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string name = textBox1.Text; string connstring; OleDbConnection conn; connstring =@"provider = microsoft.ace.oledb.12.0;Data Source = F:\个人数据库.accdb"; conn = new OleDbConnection(connstring); string sq1 = string.Format("select * from 学生信息表 where 姓名='{0}'", name); OleDbDataAdapter copp = new OleDbDataAdapter(sq1, conn); DataSet ds = new DataSet(); copp.Fill(ds, sq1); this.dataGridView1.DataSource = ds.Tables[sq1].DefaultView; conn.Close(); conn.Dispose(); } }} 结语:喜欢的请关注、转发、收藏、点赞!
作者: 什来之比 时间: 2021-8-28 11:41
这种方法适合小型数据管理
作者: 采煤工人 时间: 2021-8-28 12:15
Access要安装吗?安装哪个版本。
作者: 从事IT行业的农民工 时间: 2021-8-28 15:15
没有实际项目为导向,我是学不下去的
作者: 天之汗 时间: 2021-8-28 17:12
转发了
作者: 我的地盘她做主 时间: 2021-8-28 19:42
转发了
作者: 懒猫182114812 时间: 2021-8-28 19:47
转发了
作者: wxc3244 时间: 2021-8-28 20:50
转发了
作者: 聪慧艺术家3E 时间: 2021-8-28 22:17
作者用心了[赞]
作者: 聪慧艺术家3E 时间: 2021-8-28 22:18
[赞]
作者: 潮汕大力发展部 时间: 2021-8-29 05:28
写的很详细,非常适合初学者入门
欢迎光临 创意电子 (https://wxcydz.cc/) |
Powered by Discuz! X3.4 |