前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于C#的Access MsSQL MySQL 三种数据库访问演示(含源文件Demo)

基于C#的Access MsSQL MySQL 三种数据库访问演示(含源文件Demo)

作者头像
用户1170933
发布2022-05-10 14:32:24
1.3K0
发布2022-05-10 14:32:24
举报
文章被收录于专栏:python开发者

基于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#实现对三种数据库的访问

访问数据库所需要的命名空间:

代码语言:javascript
复制
using System;
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文件进行访问

代码语言:javascript
复制
 /// <summary>
        /// 得到*.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数据库进行访问

代码语言:javascript
复制
  /// <summary>
        /// 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数据库进行访问

代码语言:javascript
复制
  /// <summary>
        ///开源数据库系统 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数据库文件为例,其余两种数据库类似。

代码语言:javascript
复制
  /// <summary>
        /// 以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();
        }
clip_image002
clip_image002

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2010-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • http://database.ctocio.com.cn/tips/395/7631395.shtml
相关产品与服务
数据库专家服务
数据库专家服务(Database Expert Service,DBexpert)为您提供专业化的数据库服务。仅需提交您的具体问题和需求,即可获得腾讯云数据库专家的专业支持,助您解决各类专业化问题。腾讯云数据库专家服务团队均有10年以上的 DBA 经验,拥有亿级用户产品的数据库管理经验,以及丰富的服务经验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档