IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> C# Access数据库使用 -> 正文阅读

[大数据]C# Access数据库使用

目录

一、创建Access数据文件

1、新建Access数据库文件

2、创建数据表

二、创建C# Winform工程

1、配置文件

2、创建三层架构

(1)Model模型

(2)数据连接层

(3)业务处理层

(4)UI界面程序

3、添加引用

4、UI界面

?三、程序运行

?四、工程下载连接


一、创建Access数据文件

1、新建Access数据库文件

2、创建数据表

在菜单栏中->创建->表

ID、Age为长整型,Height为单精度

ID、Name为必须、其它为非必须即可不填

表命名为T_Person

二、创建C# Winform工程

1、配置文件

在App.Config文件中设置Access连接路径字符串

<connectionStrings>
    <add name="dbConnStr" connectionString="Provider= Microsoft.ACE.OLEDB.12.0;Jet OLEDB:DataBase Password='huobaby60945';Data Source=C:\Users\Administrator\Desktop\C# Access Test\AccessTest.accdb"/>
  </connectionStrings>

2、创建三层架构

分别设置数据连接层、业务处理层、UI层、Model,对应每个封装的类

(1)Model模型

PersonModel

class PersonModel
    {
        public long ID { get; set; }

        public string Name { get; set; }

        public int? Age { get; set; }

        public string AiHao { get; set; }

        public float? Height { get; set; }

        public DateTime? BirthDay { get; set; }
    }

(2)数据连接层

SqlAccesHelp

读取App.Config中的连接字符串

private static string connString = ConfigurationManager.ConnectionStrings["dbConnstr"].ConnectionString;

封装ExecuteNonQuery

        /// <summary>
        /// 执行 Transact-SQL 语句并返回受影响的行数
        /// </summary>
        /// <param name="sql">执行的sql语句</param>
        /// <param name="parameters">sql语句中的参数</param>
        /// <returns></returns>
        public static int ExecuteNonQuery(string sql, params OleDbParameter[] parameters)
        {
            using (OleDbConnection conn = new OleDbConnection(connString))
            {
                conn.Open();
                using (OleDbCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    cmd.Parameters.AddRange(parameters);        //AddRange添加的是数组
                    return cmd.ExecuteNonQuery();
                }
            }
        }

封装ExecuteScalar

        /// <summary>
        /// 执行查询,并返回查询所返回的结果集
        /// </summary>
        /// <param name="sql">执行的sql语句</param>
        /// <param name="parameters">sql语句中的参数</param>
        /// <returns></returns>
        public static object ExecuteScalar(string sql, params OleDbParameter[] parameters)
        {
            using (OleDbConnection conn = new OleDbConnection(connString))
            {
                conn.Open();
                using (OleDbCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    //方法2
                    cmd.Parameters.AddRange(parameters);        //AddRange添加的是数组
                    return cmd.ExecuteScalar();
                }
            }
        }

封装ExecuteDataTable

        /// <summary>
        /// 只用来执行查询结果比较少的sql
        /// </summary>
        /// <param name="sql">执行的sql语句</param>
        /// <param name="parameters">sql语句中的参数</param>
        /// <returns></returns>
        public static DataTable ExecuteDataTable(string sql, params OleDbParameter[] parameters)
        {
            using (OleDbConnection conn = new OleDbConnection(connString))
            {
                conn.Open();
                using (OleDbCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = sql;
                    //方法2
                    cmd.Parameters.AddRange(parameters);        //AddRange添加的是数组
                    OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
                    DataSet dataset = new DataSet();
                    adapter.Fill(dataset);
                    return dataset.Tables[0];           //可以查询很多表,默认第一个
                }
            }
        }

(3)业务处理层

PersonDAL

获取数据总条数

        /// <summary>
        /// 获取数据总条数
        /// </summary>
        /// <returns></returns>
        public static int GetCount()
        {
            return (int)SqlAccesHelp.ExecuteScalar("select count(*) from T_Person");
        }

删除制定ID行数据

        /// <summary>
        /// 删除制定ID行数据
        /// </summary>
        /// <param name="ID"></param>
        public static void DeleteByID(long ID)
        {
            SqlAccesHelp.ExecuteNonQuery("delete from T_Person where ID=@ID",
                        new OleDbParameter("@ID", ID));
        }

插入数据

        /// <summary>
        /// 插入数据。
        /// </summary>
        /// <param name="person"></param>
        public static void Insert(PersonModel person)
        {
            SqlAccesHelp.ExecuteNonQuery("insert into T_Person(ID,Name,Age,AiHao,Height,BirthDay) values (@_ID,@_Name,@_Age,@_AiHao,@_Height,@_BirthDay)",
                                    new OleDbParameter("@_ID", person.ID),
                                    new OleDbParameter("@_Name", person.Name),
                                    new OleDbParameter("@_Age", ToDBValue(person.Age)),
                                    new OleDbParameter("@_AiHao", ToDBValue(person.AiHao)),
                                    new OleDbParameter("@_Height", ToDBValue(person.Height)),
                                    new OleDbParameter("@_BirthDay", ToDBValue(person.BirthDay))
                                    );
        }

读取数据表中指定ID的数据

        /// <summary>
        /// 读取数据表中指定ID的数据
        /// </summary>
        /// <param name="ID"></param>
        /// <returns></returns>
        public static PersonModel GetByID(long id)
        {
            DataTable table = SqlAccesHelp.ExecuteDataTable("select * from T_Person where ID=@ID",
                new OleDbParameter("@ID", id));
            if (table.Rows.Count <= 0)
            {
                return null;    //不存在
            }
            else if (table.Rows.Count > 1)
            {
                //主键重复
                throw new Exception("ID存在重复");
            }
            else
            {
                //DAL中不要返回DataTable、DataRow等ADO.Net的类
                DataRow row = table.Rows[0];
                PersonModel person = new PersonModel();
                person.ID = (int)row["ID"];
                person.Name = (string)row["Name"];
                person.Age = (int)FromDBValue(row["Age"]);
                person.AiHao = (string)FromDBValue(row["AiHao"]);               //string本身就是可空类型
                person.Height = (float?)FromDBValue(row["Height"]);            //可空类型
                person.BirthDay = (DateTime?)FromDBValue(row["BirthDay"]);       //可空类型

                return person;
            }
        }

(4)UI界面程序

分别创建下列事件程序

①查询数据条数

②删除数据

③插入数据

④读取数据

3、添加引用

添加System.Configuration程序集

4、UI界面

?三、程序运行

首先向数据库中手动插入几条数据,再分别执行下列4个测试操作

?

1、查询数据条数

2、删除数据

3、插入数据

4、读取数据

?四、工程下载连接

https://download.csdn.net/download/panjinliang066333/85663649

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-06-18 23:28:02  更:2022-06-18 23:28:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 17:06:47-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码