C#读写Access数据库、表格datagridview窗体显示代码实例
来源:互联网 发布:程序员有哪些考试 编辑:程序博客网 时间:2024/05/18 00:13
C#读写Access数据库、表格datagridview窗体显示代码实例
最近项目中用到C#对于Access数据库表读写.mdb操作,学习了下相关的东西,这里先整理C#对于Access数据库的操作,对于MySQL和Oracle数据库的操作放到后面再写。
Access是微软数据库编辑软件,其生成的数据库文件为.mdb或.accdb,因此在Visual Studio里不像操纵MySQL那样需要使用mysql数据库驱动,系统库里有关于操纵数据库的几个类。说下其中几个主要用到的类:
System.Data;
System.Data.OleDb;
System.Data.Odbc;
System.Data.SqlClient;
先简单说下C#对于Access数据库的几个基本操作原理:
C#操作Access连接字符串
String connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=mydata.mdb";
C#操作Access建立连接
OleDbConnection connection = new OleDbConnection(connectionString);
C#操作Access使用OleDbCommand类执行Sql语句
OleDbCommand cmd = new OleDbCommand(sql, connection);
connection.Open();
cmd.ExecuteNonQuery();
[1]连接Access数据库
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Application.StartupPath + "\\mydata.mdb");
[2]连接SQL Server2000数据库
SqlConnection conn = new SqlConnection("server=.; uid=admin; pwd=123456; database=mydata");
[3]受信任的SQL Server2000数据库
SqlConnection conn = new SqlConnection("workstation id=localhost; Integrated Security=SSPI; database=mydata");
[4]ASP中链接SQL Server/Access数据库:(网页)
(SQL Server):
conn.connectionstring = "driver={sql server}; server=(local); uid=admin; pwd=123456; database=mydata"
(Access):
conn.connectionstring = "Driver={Microsoft Access Driver(*.mdb)}; DBQ=" & Server.Mappath("mydata.mdb")
!!!注意:→在asp中,语句结束不需要" ; "
--------------------------------------------------------------------------------------------------------------------------------------------
一、创建.mdb数据库
//创建.mdb,注意参数path是.mdb的完整路径(不包含表的名称)//C#的ADO.NET不能通过编程方式创建新的ACCESS(MDB)数据库,所以只能用COM的链接库的ADOX操作public static bool CreateMdbDatabase(string path){ try { ADOX.CatalogClass cat = new ADOX.CatalogClass(); cat.Create("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + path + ";"); cat = null; return true; } catch { return false; }}
二、C#写入记录到Access数据库
Sql插入数据库操作,一次只能插入一条记录,多条记录插入只能通过"循环"实现,效率不高;
或者要么更快地就是开启事务(保证数据一致性)→循环插入→最后数据再一起导入。
【实例】在Form上创建一个textbox和一个button,点击button把textbox中的数据写入到access数据库中。
1.首先创建一个空Access数据库datainput.mdb并写入相应字段:
2.读写数据库时应当将数据库关闭,再运行程序进行写操作
using System.Data.Oledb;private void button1_Click(object sender, EventArgs e){foreach (IACell cell in m_DistributedCells){ //把cell.FrequencyBand、cell.UlFrequency、cell.DlFrequency全部写入数据库表.mdb里去 //string sql_0 = "insert into table (column1,column2) values('" + textbox.Text + "','" + textbox.Text +"')"; //构造sql语句 string sql = ""; if (cell.ChannelIndex == 1) { sql = "insert into datawrite(ChannelIndex, BandWidth, StartChIndex, EndChIndex, ExcludedChannels, UlFrequency, DlFrequency, ACIR) values('" + 1 + "','" + 20 + "','" + 0 + "','" + 1 + "','" + 1 + "','" + 2402 + "','" + 2422 + "','" + 0 + "')"; } else if (cell.ChannelIndex == 6) { sql = "insert into datawrite(ChannelIndex, BandWidth, StartChIndex, EndChIndex, ExcludedChannels, UlFrequency, DlFrequency, ACIR) values('" + 6 + "','" + 20 + "','" + 5 + "','" + 6 + "','" + 6 + "','" + 2427 + "','" + 2447 + "','" + 0 + "')"; } else if (cell.ChannelIndex == 11) { sql = "insert into datawrite(ChannelIndex, BandWidth, StartChIndex, EndChIndex, ExcludedChannels, UlFrequency, DlFrequency, ACIR) values('" + 11 + "','" + 20 + "','" + 10 + "','" + 11 + "','" + 11 + "','" + 2452 + "','" + 2472 + "','" + 0 + "')"; }//access数据库路径,注意一定是双斜杠\\,否则会被当成转义字符! string dbpath = "D:\\data\\datainput.mdb";//定义数据库连接对象 OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + dbpath); OleDbCommand cmd = new OleDbCommand(sql, con); //定义Command对象 con.Open(); //打开数据库连接 cmd.ExecuteNonQuery(); //执行Command命令 con.Close(); //关闭数据库连接 }}运行程序,点击button后(断点只循环1次),再次打开刚才的数据库表,此时表里已插入1条记录。
三、读出数据库的值——C#界面显示表格datagridview
【实例】将现有Access数据库表格内的数据以datagridview的形式显示在C#窗体中。
1.现有的数据库,50条记录。
2.代码
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.OleDb; //主要是这个东西,其实已经包含在System.Data类里了,这里特别提出来注明下namespace text01{ public partial class Form1 : Form { public Form1() { InitializeComponent(); OleDbConnection thisConnection = new OleDbConnection(@"provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\dataread.mdb"); string sql = "select * from dataread"; OleDbDataAdapter thisAdapter = new OleDbDataAdapter(sql, thisConnection); System.Data.DataSet thisDataSet = new System.Data.DataSet(); thisAdapter.Fill(thisDataSet, "table"); DataTable dt = thisDataSet.Tables["table"]; this.dataGridView1.DataSource = dt; thisConnection.Close(); } }}
效果图:
- C#读写Access数据库、表格datagridview窗体显示代码实例
- access显示到dataGridView C#
- C# 连接ACCESS数据库代码实例
- C#连接Access数据库实例代码讲解
- C# 连接ACCESS数据库代码实例
- C# 连接ACCESS数据库代码实例
- C#连接access在datagridview中显示
- C#连接access数据库并将数据读取到dataGridView中显示
- DataGridView控件读写MySQL数据库表格的方法
- javascript读写客户端ACCESS数据库实例
- VC 对Access数据库读写操作实例
- C#中datagridview显示数据库数据
- DataGridView显示Excel表格
- C#实例:VS2005和Access数据库操作
- C#连接Access数据库字符串的实例
- C#中MDI窗体关闭显示代码
- ACCESS数据库窗体
- xls表格导入数据库功能实例代码
- 数据库范式
- 浅谈Service
- Abator —— IBatis 代码生成工
- Android聊天软件的开发(一)--预备知识
- Ckplayer的搭建
- C#读写Access数据库、表格datagridview窗体显示代码实例
- java初始化构造函数调用顺序
- 国家互联网信息办:“净网”不是一阵风 将建立长效机制
- 教你怎么提高你的人生档次
- 我只是你人生中的过客
- reviewboard run!-2 安装篇(opensuse 13.1+apache2+mysql+reviewboard)
- scapy
- 重构摘要7_在对象之间搬移特性
- 双击退出、输出、文件扩展名、SD卡文件操作