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();

}

}

}

效果图:

datagridview控件读写mysql数据库表格的方法_C#读写Access数据库、表格datagridview窗体显示代码实例...相关推荐

  1. C#实现WinForm下DataGridView控件从剪切板中进行内容粘贴

    DataGridView是C#中在处理显示表格数据时常用的控件,但是在使用过程中,会发现复制DataGridView控件中的内容比较容易,而把剪切板中拷贝的内容黏贴到DataGridView控件中比较 ...

  2. DataGridView控件初始化,添加删除行(不绑定数据库)

    转载: http://blog.163.com/zjlovety@126/blog/static/2241862420106128264300/ 也不知道是否该应用这个控件,不过也想不出该用其他什么控 ...

  3. .Net C# 如何读取Excel数据内容写入数据库并通过DataGridView控件动态刷新显示

    目录 介绍 选择Excel文件并读取内容 将数据内容写到数据库 更新dataGridView内容 介绍 本篇文章主要介绍C# winForm窗体如何打开Excel文件读取其中的内容,并将其内容写到数据 ...

  4. C#Winform的DataGridView控件使用详解2—DataGridView表格样式设置及表格操作

    C#Winform的DataGridView控件使用详解2-DataGridView表格样式设置及表格操作 DataGridView表格样式设置 DataGridView行序号设置 右键弹出控件表格操 ...

  5. 深入了解DataGridView控件

     DataGridView控件 DataGridView是用于Windows Froms 2.0的新网格控件.它可以取代先前版本中DataGrid控件,它易于使用并高度可定制,支持很多我们的用户需 ...

  6. DataGridView控件使用大全

    原文地址为: DataGridView控件使用大全   DataGridView控件 DataGridView是用于Windows Froms 2.0的新网格控件.它可以取代先前版本中DataGrid ...

  7. WinForm中关于DataGridView控件的一些应用

    转载于新浪 美林居士 的博客:            blog.sina.com.cn/s/blog_797a56d20101daiw.html4 在.NET4.0中,以表格形式存储的数据通常是Dat ...

  8. winform datagridview控件使用

    最近做项目时,显示查询结果总需要绑定到datagridview控件上显示,总结了给datagridview绑定数据的方式,以及导出datagridview数据到excel表格,如有错误请多指教 1.直 ...

  9. 在DataGridView控件中加入ComboBox下拉列表框的实现

    原文 http://www.cnblogs.com/luqingfei/archive/2007/03/28/691372.html 虽然在Visual Studio中 DataGridView控件的 ...

最新文章

  1. 2022-2028年中国液化石油气(LPG)行业投资分析及前景预测报告
  2. java中数组的复制
  3. UI培训分享:学UI设计需要知道哪些事情?
  4. 多线路虚拟主机解决方案
  5. python long_python long函数是什么?如何使用?
  6. 逆序输出(数组练习)
  7. VTK:绘图之PieChartActor
  8. Spring Data JPA 查询方法支持的关键字
  9. c#养老院老人信息管理系统源码 论文_辽宁吃的好的社区养老院位置,爱心养老院_抚顺市望花区社会养老中心...
  10. 使用代码为TextView设置drawableLeft
  11. 【STM32】手把手固件库开发工程建立
  12. 下载m3u8加密视频的一些经验和小细节
  13. ubuntu 开机后不动_Ubuntu启动时停止的问题
  14. mybatisplus自动填充时间出现的问题
  15. java线程生命周期
  16. “看得见的手”:浅谈我国网约车监管
  17. windows 运行 自定义 命令 的实现
  18. 1.1 win10下wget的安装
  19. 三个理由告诉你 为什么社保不能断缴
  20. 图形算法:圆形生成算法

热门文章

  1. 华为机试第九题python
  2. 入门|机器学习中常用的损失函数你知多少?
  3. elasticsearch批量操作
  4. 网鼎杯SQLI+反序列化读取文件题解
  5. 第二课unit2 控制对文件的访问
  6. 乡巴佬GHOST WIN7 SP1 旗舰版32位
  7. Android开发之移动互联网周刊第二期,不错,推荐给大家
  8. firefox下几个实用的免费开发插件
  9. 零基础Java学习之包(Package)
  10. knockout之自定义绑定