什来之比 发表于 2021-8-28 11:37:04

C#与数据库完善联合,数据操纵简单实用,快速读取数据

https://p26.toutiaoimg.com/large/pgc-image/ba5f27f11ad9499fb547fa6f117e0d5c
连接数据库有两种方法:
使用数据源设置向导连接
通过编写程序代码来连接
使用“数据源设置向导”产生数据集举行连接数据库

创建窗体后,点击view查看菜单后选择other windows其他窗口,展开第二层菜单选项,点击数据源指令,打开“数据源窗口”:
https://p9.toutiaoimg.com/large/pgc-image/c2a8d8a7f313478986686aaa5dcc3ed6数据源设置向导
在数据源窗口点击左上角的图标“添加新数据源”,打开“数据源设置向导”窗口:
https://p3.toutiaoimg.com/large/pgc-image/87b3defa73584881914c5eabbf7cafba数据源设置向导窗口
选择数据源类型,选择database数据库,单击next下一步:
https://p3.toutiaoimg.com/large/pgc-image/80507dd225804b56868705a1358c5132选择数据源类型
选择数据集,单击next下一步:
https://p6.toutiaoimg.com/large/pgc-image/7a66d0cc716f49339c434be464fa61ef选择数据集
选择数据连接,单击new connection新建连接按钮,进入选择数据源对话框:
https://p26.toutiaoimg.com/large/pgc-image/c189423615d646b4b9dbf01636a865fd选择数据连接
在数据源中选择“Microsoft access database file”,单击ok按钮进入添加连接对话框:
https://p6.toutiaoimg.com/large/pgc-image/f5e8ab2db8d548938d3c111372da7b13添加连接
点击browse欣赏按钮加入一个access数据库:
https://p3.toutiaoimg.com/large/pgc-image/ee61b5160dfe47a580daaf4eef842465连接access数据库
单击test connection测试连接按钮,表现测试连接乐成的消息框:
https://p6.toutiaoimg.com/large/pgc-image/1447c699927345ba96357a933c7dca5c测试连接
下一步后,由于数据库文件并非与项目在同一文件夹下,以是会表现以下告诫信息,提示是否要把数据库复制到当前的项目中,单击“是”继续:
https://p9.toutiaoimg.com/large/pgc-image/f73c510d6daf446e92cc4cb9a077a4f5把数据库复制到当前的项目中
接着,勾选yes,save the connection as复选框,将连接字符串保存到应用程序设置文件当中,单击next继续:
https://p3.toutiaoimg.com/large/pgc-image/aa57d0f75e1c4b75a61d3675e2a1aff4保存连接字符串
所有的数据表都在tables当中,展开数据表后,勾选所需要的数据表:
https://p6.toutiaoimg.com/large/pgc-image/b6a4d16e7f6749f093c89d1ef0f72787数据表
点击finish完成即可,此时可以看到数据库加入到了项目当中。此时,可以查看数据库中的数据,右键点击鼠标选择retrieve data:
https://p5.toutiaoimg.com/large/pgc-image/9965572a98f04f1ea54d5764e92d8c75查看数据表
查看数据表中的数据:
https://p6.toutiaoimg.com/large/pgc-image/bfb7d82eb40c49ceb6444551084d2917查看数据表中的数据
通过程序代码连接数据库,举行提取存入数据

用程序代码来实现与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;运行程序:
https://p3.toutiaoimg.com/large/pgc-image/03594dc9403643849517e5f222fea6e5运行
点击读取数据库:
https://p3.toutiaoimg.com/large/pgc-image/f583d109a9464efcb358d49ee9c7e7a7读取数据
数据表更新操作

建立连接数据库:
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();运行程序:
https://p6.toutiaoimg.com/large/pgc-image/99cd158376db4b19a58e694de501b906更新数据库
点击运行后,打开数据库:
修改前:
https://p5.toutiaoimg.com/large/pgc-image/f636986ffbce48389dc08fdad003c760修改前数据
修改之后,姓张的住所修改成了北京:
https://p6.toutiaoimg.com/large/pgc-image/1b39f1036fdf4f9898d91bb73475452d修改后数据
完备程序代码:
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控件,计划布局如下图:
https://p5.toutiaoimg.com/large/pgc-image/cbb56514a7634da7975e791ef54bb94a窗体界面计划
双击查询信息后,键入下列程序代码:
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.DefaultView;表现查询结果conn.Close();关闭数据库连接conn.Dispose();释放对象 运行程序:
https://p6.toutiaoimg.com/large/pgc-image/001cd0b1aeed4590af5be9461fd3b270查询数据
输入学生姓名孙菲菲,点击查询信息:
https://p3.toutiaoimg.com/large/pgc-image/10e9db39ce144d448fedc7640b2086e3查询信息
只表现孙菲菲的信息,通过输入不同砚生姓名,可实现不同变量的信息查询。
焦点语句为:
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.DefaultView;            conn.Close();            conn.Dispose();                }    }}    结语:喜欢的请关注、转发、收藏、点赞!

什来之比 发表于 2021-8-28 11:41:32

这种方法适合小型数据管理

采煤工人 发表于 2021-8-28 12:15:23

Access要安装吗?安装哪个版本。

从事IT行业的农民工 发表于 2021-8-28 15:15:24

没有实际项目为导向,我是学不下去的

潮汕大力发展部 发表于 2021-8-29 05:28:27

写的很详细,非常适合初学者入门

聪慧艺术家3E 发表于 2021-8-28 22:17:35

作者用心了[赞]

天之汗 发表于 2021-8-28 17:12:12

转发了

我的地盘她做主 发表于 2021-8-28 19:42:29

转发了

懒猫182114812 发表于 2021-8-28 19:47:10

转发了

wxc3244 发表于 2021-8-28 20:50:16

转发了
页: [1] 2
查看完整版本: C#与数据库完善联合,数据操纵简单实用,快速读取数据