基于C#的Access MsSQL MySQL 三种数据库访问演示(含源文件Demo)
BY: 一点一滴的Beer
一、三种数据库的主要对比
数据库类型 | 特点 |
Microsoft Access | 桌面数据库、数据库载体是单个文件 |
Microsoft Sql Server | 基于服务器端的中型的数据 |
MySql | 跨平台,开源,价格便宜 |
关于三种数据库的详情,请参考本文:
http://database.ctocio.com.cn/tips/395/7631395.shtml
三种数据库各有优缺点。就笔者目前的体会来说一下三种数据库的用途:
Access:数据库载体是单个*.mdb文件,而且可以用Microsoft Access以文档的方式打开,拥有良好的数据库构架,方便程序访问,一般用于小型的桌面应用程序的数据存储载体。
MS Sql Server:基于网络访问,比较适合选作为B/S,C/S程序的数据库。
MySql:其主要特点、用法和MS Sql Server比较类似,最大的优点就是开源,便宜。
总述:Access和MS Sql Server比较容易学习和入门,但是如果用作商业用途的时候,可以选用MySql,它们用法类似,但价格却区别很大。^_^
二、用C#实现对三种数据库的访问
访问数据库所需要的命名空间:
using System.Collections.Generic;
using System.Text;
using System.Data; // DataSet等数据表
using System.Data.OleDb; // Access本地数据库
using System.Data.SqlClient; // Microsoft Sql Server数据库
using MySql.Data.MySqlClient; // MySql数据库访问--要先对MySql.Data.dll文件进行引用
2.1 对Access数据库文件*.mdb文件进行访问
/// 得到*.mdb文件的相对路径
/// </summary>
/// <returns></returns>
private static string GetFilePath()
{
string filepath = AppDomain.CurrentDomain.BaseDirectory;
int binPos = filepath.IndexOf( " bin " );
string binPath = filepath.Remove(binPos);
return binPath;
}
/// <summary>
/// 本地数据库系统Microsoft Access 连接访问演示
/// 要求:将ACCESS数据库文件*.mdb放到bin根目录下面
/// </summary>
private static void AccessDemo()
{
string strBinPath = GetFilePath();
// 本地数据库文件的连接
OleDbConnection aConnection = new OleDbConnection( " Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + strBinPath + " bin\\first.mdb " );
string select = " select * from libBooks " ;
// 数据库数据控件显示
aConnection.Open();
OleDbDataAdapter da = new OleDbDataAdapter(select, aConnection);
DataSet ds = new DataSet();
da.Fill(ds, " 图书馆 " );
DataTable dt = ds.Tables[ 0 ]; // 数据集的第0张表格
}
2.2 对MsSql Server数据库进行访问
/// Microsoft Sql Server 连接访问演示(以访问本地数据库服务为例)
/// 要求:在服务器上安装Microsoft Sql 2005
/// </summary>
private static void MsSqlDemo()
{
try
{
string sql = " select * from Employees " ;
// 访问MySql数据库服务器所需要的登录信息:根据具体情况来定
string serverIP = " 127.0.0.1 " ; // "127.0.0.1" = "localhost"
string userID = " sa " ; // 访问数据库服务的用户名
string password = "" ; // 用户密码
string dataBaseName = " Northwind " ; // 要访问的数据库名称
SqlConnection sqlConn = new SqlConnection( " Server= " + serverIP + " ;Uid= " + userID + " ;Pwd= " + password + " ;Database= " + dataBaseName);
sqlConn.Open();
SqlDataAdapter mda = new SqlDataAdapter(sql, sqlConn);
DataSet ds = new DataSet();
mda.Fill(ds, " table1 " );
DataTable dt = ds.Tables[ 0 ];
sqlConn.Close();
}
catch (SqlException se)
{
Console.WriteLine( " Database operation errors : " + se.StackTrace);
}
}
2.3 对MySql数据库进行访问
/// 开源数据库系统 MySql 连接访问演示(以访问本地数据库服务为例)
/// 要求:在服务器上安装MySql数据库
/// </summary>
private static void MySqlDemo()
{
try
{
string sql = " select * from help_keyword " ;
// 访问MySql数据库服务器所需要的登录信息:根据具体情况来定
string serverIP = " 127.0.0.1 " ; // "127.0.0.1" = "localhost"
string userID = " root " ; // 访问数据库服务的用户名
string password = " z " ; // 用户密码
string dataBaseName = " mysql " ; // 要访问的数据库名称
MySqlConnection mySqlConn = new MySqlConnection( " Server= " + serverIP + " ;User Id= " + userID + " ;Password= " + password + " ;Persist Security Info=True;Database= " + dataBaseName);
mySqlConn.Open();
MySqlDataAdapter mda = new MySqlDataAdapter(sql, mySqlConn);
DataSet ds = new DataSet();
mda.Fill(ds, " table1 " );
DataTable dt = ds.Tables[ 0 ];
mySqlConn.Close();
}
catch (MySqlException se)
{
Console.WriteLine( " Database operation errors : " + se.StackTrace);
}
}
通过上面对三种数据库的访问方式可以发现,访问数据库的流程基本上一样:
创建连接―>打开连接―>根据查询语句创建数据库适配器―>提取数据到DataSet中―>完成数据的访问并关闭连接
所不同的只是在函数名称的前缀上略作修改而已,所以三种数据库的操作程序很好移植。
2.4 更新数据库记录
因为三种数据库的操作流程基本类似,所以就以更新Access数据库文件为例,其余两种数据库类似。
/// 以Access为例,向数据库中更新数据 方法演示
/// </summary>
private static void AccessInsertData()
{
string strBinPath = GetFilePath();
OleDbConnection aConnection = new OleDbConnection( " Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + strBinPath + " bin\\first.mdb " );
aConnection.Open();
// 通过SQL查询语句,直接插入单条记录------直接对硬盘上的数据源进行操作。
OleDbCommand command = new
OleDbCommand( " INSERT INTO libBooks VALUES('插入字段','Access数据库演示',2000,3000) " , aConnection);
command.ExecuteNonQuery();
aConnection.Close();
}
ACCESS数据文件效果如图
关于附件的说明:
开发语言:C#
开发环境:VS2005
运行环境:.NET Framework 2.0
因为本演示程序涉及到数据库编程,用户除了要安装VS2005或者更高级的开发环境外,还需要安装必要的数据库平台:
Access:只要有*.mdb文件即可。当然如果要查看数据,最好还是安装Microsoft Access
MsSql Server:安装Microsoft Sql Server
MySql:安装MySql(可以到官网上下载免费版,不过是基于DOS的,然后再下载一个Navicat for MySQL可以实现可视化操作查看)
附件地址: DataBaseDemo.rar
------------------------------------------------------------------
Author:一点一滴的Beer
Email /Gtalk:dreamzsm@gmail.com
From:http://www.cnblogs.com/beer
Notes:欢迎转贴,但请在页面中加个链接注明出处,就当是对作者的一点小鼓励吧^_^
Time:2010-7-27