首页 > 其他分享 >001 学习笔记--Access 常用操作

001 学习笔记--Access 常用操作

时间:2023-07-14 10:03:32浏览次数:35  
标签:string -- cmd Access 001 sql using public connString

Access数据库——设计试图,可进行表字段设计

Access数据库——双击表,可维护数据

常用CRUD帮助方法如下所示:

using System.Data;
using System.Data.OleDb;

namespace DBHelper
{
    public static class AccessHelper
    {
        //private static string connString = ConfigurationManager.ConnectionStrings["dbConnstr"].ConnectionString;

        public static OleDbConnection GetConnection(string connString)
        {
            OleDbConnection conn = new OleDbConnection(connString);
            return conn;
        }

        /// <summary>
        /// 获取数据总条数
        /// </summary>
        /// <returns></returns>
        public static int GetCount(string connString, string sql)
        {
            return (int)ExecuteScalar(connString, sql);
        }

        /// <summary>
        /// 删除制定ID行数据
        /// </summary>
        /// <param name="ID"></param>
        public static int DeleteByField(string connString, string tableName, string fieldName, string fieldValue)
        {
            //ExecuteNonQuery(connString,"delete from T_Person where ID=@ID", new OleDbParameter("@ID", fieldValue));
            string sql = "delete from " + tableName + " where " + fieldName + "=@" + fieldName;
            return ExecuteNonQuery(connString, sql, new OleDbParameter("@" + fieldName, fieldValue));
        }

        /// <summary>
        /// 执行 Transact-SQL 语句并返回受影响的行数
        /// </summary>
        /// <param name="sql">执行的sql语句</param>
        /// <param name="parameters">sql语句中的参数</param>
        /// <returns></returns>
        public static int ExecuteNonQuery(string connString, 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();
                }
            }
        }

        /// <summary>
        /// 执行查询,并返回查询所返回的结果集
        /// </summary>
        /// <param name="sql">执行的sql语句</param>
        /// <param name="parameters">sql语句中的参数</param>
        /// <returns></returns>
        public static object ExecuteScalar(string connString, 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();
                }
            }
        }

        /// <summary>
        /// 只用来执行查询结果比较少的sql
        /// </summary>
        /// <param name="sql">执行的sql语句</param>
        /// <param name="parameters">sql语句中的参数</param>
        /// <returns></returns>
        public static DataTable ExecuteDataTable(string connString, 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];           //可以查询很多表,默认第一个
                }
            }
        }

    }
}

应用调用示例:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AccessDemo
{
    public class UserInfo
    {
        public string UserId { get; set; }
        public string UserName { get; set; }
        public string PassWord { get; set; }
        public string NickName { get; set; }
    }
}

窗体:

 

using DBHelper;
using System;
using System.Windows.Forms;

namespace AccessDemo
{
    public partial class Form1 : Form
    {
        //office 版本不同对应连接串不同
        private static string ConnString = "Provider= Microsoft.ACE.OLEDB.12.0;Jet OLEDB:DataBase Password = ''; Data Source = "
            + Application.StartupPath + "\\DB\\RFDB.accdb";

        //string strExePath = Application.StartupPath + @"MedViewer.mdb";   //mdb";
        //ConnString = @"Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" + strExePath;
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.dgvList.AutoGenerateColumns = false;
            string sql = "select * from UserInfo";
            //List<UserInfo> list = (List<UserInfo>)AccessHelper.ExecuteScalar(ConnString, sql);

            var list = AccessHelper.ExecuteDataTable(ConnString, sql);
            this.dgvList.DataSource = list;
        }

        private void btnAdd_Click(object sender, EventArgs e)
        {
            try
            {
                string sql = @"insert into [UserInfo] ([UserId],[UserName],[PassWord],[NickName]) values ("
                    + "'" + this.txtUserId.Text + "',"
                    + "'" + this.txtUserName.Text + "',"
                    + "'" + this.txtPwd.Text + "',"
                    + "'" + this.txtNickName.Text + "')";

                int count = AccessHelper.ExecuteNonQuery(ConnString, sql);
                MessageBox.Show("新增成功:" + count);
                //UserId,UserName,PassWord,NickName
            }
            catch (Exception ex)
            {
            }
        }

        private void btnDel_Click(object sender, EventArgs e)
        {
            int count = AccessHelper.DeleteByField(ConnString, "UserInfo", "UserId", this.txtUserId.Text);

            MessageBox.Show("删除成功:" + count);
        }

        private void btnUpdate_Click(object sender, EventArgs e)
        {
            string sql = string.Format(@"update [UserInfo] set [PassWord] = '001' where [PassWord] ='{0}'", 1);

            int count = AccessHelper.ExecuteNonQuery(ConnString, sql);
            MessageBox.Show("修改成功:" + count);
        }

        private void btnQuery_Click(object sender, EventArgs e)
        {
            string sql = "select * from UserInfo";

            var list = AccessHelper.ExecuteDataTable(ConnString, sql);
            this.dgvList.DataSource = list;
        }
    }
}

  

标签:string,--,cmd,Access,001,sql,using,public,connString
From: https://www.cnblogs.com/YYkun/p/17552886.html

相关文章

  • 正整数正则表达式
    正整数正则表达式正数的正则表达式(包括0,小数保留两位):^((0{1}.\d{1,2})|([1-9]\d.{1}\d{1,2})|([1-9]+\d)|0)$正数的正则表达式(不包括0,小数保留两位):^((0{1}.\d{1,2})|([1-9]\d.{1}\d{1,2})|([1-9]+\d))$正整数的正则表达式(包括0):^[+]{0,1}(\d+)$正整数的正则表达式(不包括0......
  • 各种进制之间的转换
    进制转换:https://blog.csdn.net/m0_61231111/article/details/124432295进制对照表:......
  • 大量SDK设备接入时,如何巧妙配置EasyCVR平台参数?
    EasyCVR视频融合平台可支持海量视频的轻量化接入与汇聚管理。在视频能力上,EasyCVR可实现视频直播、录像、回放、检索、云存储、告警上报、语音对讲、电子地图、集群、智能分析以及平台级联等。平台支持多协议接入,包括国标GB28181、RTMP、RTSP/Onvif、海康Ehome、海康SDK、大华SDK......
  • 视频融合平台EasyCVR接口调用正常,但快照不显示是什么原因?
    EasyCVR平台能在复杂的网络环境中,将分散的各类视频资源进行统一汇聚、整合、集中管理,实现视频资源的鉴权管理、按需调阅、全网分发、智能分析等,平台融合性强、开放度高、部署轻快,在智慧工地、智慧园区、智慧工厂、智慧码头、智慧水利等场景中有着广泛的应用前景。有用户反馈,现场......
  • C#移除List中特定元素
    在List里面移除其中一个元素之后,原有的索引以及索引对应的值会发生改变,如果按照原有的索引值删除,就会误删除其它元素。1.实现思路原始List为A,将需要删除的元素放到一个ListB里面,遍历此List,A再使用Remove依次移除元素。下面代码实现的是移除索引为前两位的元素2.代码 usin......
  • windows Mysql 压缩包版本 安装
    Mysql现如今的版本都有安装版,但是我需要老的Mysql版本(5.7),恰好下载的是压缩版本,这里记录下过程安装Mysql压缩包版本,解压后得到一个文件夹,我是x64的,我放在了C:\ProgramFiles下然后将C:\ProgramFiles\mysql\bin放进系统环境变量,这样就可以在cmd窗口使用msql的命令了管理员......
  • mybatis if标签判断Integer类型的值不等于0 (!=''等价于!=0)
    场景当传入的activityInfoDTO属性codeAction的值为0时,需要通过状态(code_action=0或1)来查询数据,code_action类型为Integer<iftest="activityInfoDTO.codeAction!=nullandactivityInfoDTO.codeAction!=''">andcode_action=#{acti......
  • 20个非常绚丽的HTML5/CSS3应用插件
    基于HTML5的应用现在已经非常广泛,今天我们就来向大家分享20款非常绚丽的HTML5/CSS3应用插件。希望大家喜欢并分享给你的好友们。1、HTML5视频破碎重组特效强大视觉冲击HTML5视频播放器很多,但是HTML5视频特效还是很少见的,这款HTML5视频破碎重组特效非常刺激,给人强大的视觉冲击。......
  • 使用HttpUtil时报javax.net.ssl.SSLHandshakeException: No appropriate protocol异常
    在使用HttpUtil类时,针对某一个接口报错出现异常HttpGetInforesult=HttpUtil.getInfo(token,Url);但是这个getInfoUrl在postman上调用是成功的后来查找后发现问题是:在Java8及高版本以上的版本在调用ssl时会出现javax.net.ssl.SSLHandshakeException:Noappropriateprotoc......
  • python arrow在图上绘制箭头
    importmatplotlib.pyplotaspltdefdrawArrow(A,B):fig=plt.figure()ax=fig.add_subplot(111)"""箭头起始位置(A[0],A[1])和终点位置(B[0],B[1])length_includes_head=True:表示增加的长度包含箭头部分head_width:箭头的宽度head_length......