使用C#对数据库Access的增、删、改、查

前言:
程序的运行过程,本质上是对数据流的处理,包含数据的存储和读取,其中存储和读取是基于数据结构,而怎么存储、怎么读取则基于算法,也就是所谓的“程序 = 数据结构 + 算法”。
不论是web开发,还是桌面应用开发,都会涉及到数据的处理和数据的存储问题。对于数据的存储和管理,数据库是不二之选。

1 数据库
数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。
所谓“数据库”是以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

可以分类为关系型数据库和非关系型数据库:
1.1 关系型数据库
MySQL
MariaDB(MySQL的代替品,英文维基百科从MySQL转向MariaDB)
Percona Server(MySQL的代替品·)
PostgreSQL
Microsoft Access — 本文要介绍的
Microsoft SQL Server
Google Fusion Tables
FileMaker
Oracle数据库
Sybase
dBASE
Clipper
FoxPro
foshub
1.2 非关系型数据库
BigTable(Google)
Cassandra
MongoDB
CouchDB
Apache Cassandra
Dynamo
LevelDB(Google)

2 结构化查询语言(SQL)
这里有详细的语法介绍:
w3school.com.cn/sql

简而言之,SQL就是用来操作关系型数据库的,满足对应的语法,对数据库进行增、删、改、查。

3 C#编写实现增、删、改、查功能的类

类 AccessClass:
1 建立与数据库Access的链接
2 数据库进行增、删、改、查

    public class AccessClass
    {
        string _strConn = @"provider = Microsoft.Jet.OLEDB.4.0;Data Source = D:\test.mdb";//数据库连接信息
        OleDbConnection oleDb; //用于与数据库建立连接
        OleDbCommand oleDbCommand; //用于执行SQL语句,但是先要指定连接的对象
        OleDbDataAdapter dbDataAdapterCali; //数据适配对象,用于与数据库的数据建立连接
        public System.Data.DataTable dataCali; //表对象,用于接收数据库查询的返回数据

        /// <summary>
        /// 插入一整行
        /// </summary>
        /// <returns></returns>
        public bool insert(string str_time, string str_value)
        {
            /*
             * 在test_data_new表中插入一整行
             */
            string sql = "insert into test_data_new values('"+ str_time + "','" + str_value + "')";

             /*
              * 写入sql语句
              */
            oleDbCommand.CommandText = sql; 
             /*
              * 执行sql,并返回受影响的行数
              */
            int i = oleDbCommand.ExecuteNonQuery(); 
            return i > 0;
        }

        /// <summary>
        /// 更新单个数据
        /// </summary>
        /// <returns></returns>
        public bool update(string table_name, string str_sheet,string str_value)
        {
            string sql = "";
            sql = "update table_name set sheet1 = '" + str_value + "' where sheet2 = '" + str_sheet+ "'";
            
            oleDbCommand.CommandText = sql; //指定sql语句
            int i = oleDbCommand.ExecuteNonQuery(); //执行sql语句
            return i > 0;
        }

        /// <summary>
        /// 查询表中的单行数据
        ///
        /// </summary>
        /// <returns></returns>
        public bool select(string table_name, string str_value)
        {
            string sql = "";
            sql = "select * from table_name where sheet2 = '" + str_value+ "'";

            oleDbCommand.CommandText = sql;
            dbDataAdapterCali.Fill(dataCali); //将数据库中的数据填充到dataTable中
     
            return true;
        }

        /// <summary>
        /// 删除测试的结果数据,便于下次再储存
        /// </summary>
        /// <returns></returns>
        public bool delete()
        {
            string sql = "delete * from test_data_new";
            /*
             * 写入sql语句
             */
            oleDbCommand.CommandText = sql;
            /*
             * 执行sql,并返回受影响的行数
             */
            int i = oleDbCommand.ExecuteNonQuery();
            return i > 0;
        }
   }

4 总结
以上只是实现对数据库的简单应用,属于应用层面。还需深入理解数据库内部实现原理、如何解决高并发、高可靠性,同时了解各个数据库之间的优缺点、以便用于技术选型。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C#连接ACCESS数据库进行操作可以通过ADO.NET来实现。下面是一个简单的示例代码: 1. 首先,需要引入System.Data.OleDb命名空间。 2. 连接数据库: ```csharp string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=path_to_your_database.accdb"; OleDbConnection connection = new OleDbConnection(connectionString); connection.Open(); ``` 3. 执行询操作: ```csharp string query = "SELECT * FROM TableName"; OleDbCommand command = new OleDbCommand(query, connection); OleDbDataReader reader = command.ExecuteReader(); while (reader.Read()) { // 处理询结果 } reader.Close(); ``` 4. 执行插入操作: ```csharp string insertQuery = "INSERT INTO TableName (Column1, Column2) VALUES (@Value1, @Value2)"; OleDbCommand insertCommand = new OleDbCommand(insertQuery, connection); insertCommand.Parameters.AddWithValue("@Value1", value1); insertCommand.Parameters.AddWithValue("@Value2", value2); insertCommand.ExecuteNonQuery(); ``` 5. 执行更新操作: ```csharp string updateQuery = "UPDATE TableName SET Column1 = @Value1 WHERE Column2 = @Value2"; OleDbCommand updateCommand = new OleDbCommand(updateQuery, connection); updateCommand.Parameters.AddWithValue("@Value1", newValue1); updateCommand.Parameters.AddWithValue("@Value2", conditionValue); updateCommand.ExecuteNonQuery(); ``` 6. 执行删除操作: ```csharp string deleteQuery = "DELETE FROM TableName WHERE Column = @Value"; OleDbCommand deleteCommand = new OleDbCommand(deleteQuery, connection); deleteCommand.Parameters.AddWithValue("@Value", value); deleteCommand.ExecuteNonQuery(); ``` 7. 关闭数据库连接: ```csharp connection.Close(); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值