zoukankan      html  css  js  c++  java
  • C#操作Excel数据增删改查示例

    1.首先创建测试库.xls文件,并添加两张工作表。


      工作表1:
      专业擂台,字段:ID、CATEGORY、NUM、QUESTION、ANSWER。

    2.创建ExcelHelper.cs类,Excel文件处理类

      

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data.OleDb;
    using System.Data;
    
    namespace DTXT.DAL
    {
        /// <summary> 
        /// Excel文件处理类 
        /// </summary> 
        public class ExcelHelper
        {
            private static string fileName = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"ExcelFile测试库.xls";
    
            private static OleDbConnection connection;
            public static OleDbConnection Connection
            {
                get
                {
                    string connectionString = "";
                    string fileType = System.IO.Path.GetExtension(fileName);
                    if (string.IsNullOrEmpty(fileType)) return null;
                    if (fileType == ".xls")
                    {
                        connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + fileName + ";" + ";Extended Properties="Excel 8.0;HDR=YES;IMEX=2;"";
                    }
                    else
                    {
                        connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=" + fileName + ";" + ";Extended Properties="Excel 12.0;HDR=YES;IMEX=2;"";
                    }
                    if (connection == null)
                    {
                        connection = new OleDbConnection(connectionString);
                        connection.Open();
                    }
                    else if (connection.State == System.Data.ConnectionState.Closed)
                    {
                        connection.Open();
                    }
                    else if (connection.State == System.Data.ConnectionState.Broken)
                    {
                        connection.Close();
                        connection.Open();
                    }
                    return connection;
                }
            }
    
            /// <summary> 
            /// 执行无参数的SQL语句 
            /// </summary> 
            /// <param name="sql">SQL语句</param> 
            /// <returns>返回受SQL语句影响的行数</returns> 
            public static int ExecuteCommand(string sql)
            {
                OleDbCommand cmd = new OleDbCommand(sql, Connection);
                int result = cmd.ExecuteNonQuery();
                connection.Close();
                return result;
            }
    
            /// <summary> 
            /// 执行有参数的SQL语句 
            /// </summary> 
            /// <param name="sql">SQL语句</param> 
            /// <param name="values">参数集合</param> 
            /// <returns>返回受SQL语句影响的行数</returns> 
            public static int ExecuteCommand(string sql, params OleDbParameter[] values)
            {
                OleDbCommand cmd = new OleDbCommand(sql, Connection);
                cmd.Parameters.AddRange(values);
                int result = cmd.ExecuteNonQuery();
                connection.Close();
                return result;
            }
    
            /// <summary> 
            /// 返回单个值无参数的SQL语句 
            /// </summary> 
            /// <param name="sql">SQL语句</param> 
            /// <returns>返回受SQL语句查询的行数</returns> 
            public static int GetScalar(string sql)
            {
                OleDbCommand cmd = new OleDbCommand(sql, Connection);
                int result = Convert.ToInt32(cmd.ExecuteScalar());
                connection.Close();
                return result;
            }
    
            /// <summary> 
            /// 返回单个值有参数的SQL语句 
            /// </summary> 
            /// <param name="sql">SQL语句</param> 
            /// <param name="parameters">参数集合</param> 
            /// <returns>返回受SQL语句查询的行数</returns> 
            public static int GetScalar(string sql, params OleDbParameter[] parameters)
            {
                OleDbCommand cmd = new OleDbCommand(sql, Connection);
                cmd.Parameters.AddRange(parameters);
                int result = Convert.ToInt32(cmd.ExecuteScalar());
                connection.Close();
                return result;
            }
    
            /// <summary> 
            /// 执行查询无参数SQL语句 
            /// </summary> 
            /// <param name="sql">SQL语句</param> 
            /// <returns>返回数据集</returns> 
            public static DataSet GetReader(string sql)
            {
                OleDbDataAdapter da = new OleDbDataAdapter(sql, Connection);
                DataSet ds = new DataSet();
                da.Fill(ds, "UserInfo");
                connection.Close();
                return ds;
            }
    
            /// <summary> 
            /// 执行查询有参数SQL语句 
            /// </summary> 
            /// <param name="sql">SQL语句</param> 
            /// <param name="parameters">参数集合</param> 
            /// <returns>返回数据集</returns> 
            public static DataSet GetReader(string sql, params OleDbParameter[] parameters)
            {
                OleDbDataAdapter da = new OleDbDataAdapter(sql, Connection);
                da.SelectCommand.Parameters.AddRange(parameters);
                DataSet ds = new DataSet();
                da.Fill(ds);
                connection.Close();
                return ds;
            }
        }
    }
    

      

    3. 创建实体类 创建ZYLT.cs类,专业擂台实体类。

      

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data;
    
    namespace DTXT.Model
    {
        /// <summary> 
        /// 专业擂台 
        /// </summary> 
        public class ZYLT
        {
            public string ID { get; set; }
            public string CATEGORY { get; set; }
            public string NUM { get; set; }
            public string QUESTION { get; set; }
            public string ANSWER { get; set; }
    
            /// <summary> 
            /// 将DataTable转换成List数据 
            /// </summary> 
            public static List<ZYLT> ToList(DataSet dataSet)
            {
                List<ZYLT> ZYLT_Lst = new List<ZYLT>();
                if (dataSet != null && dataSet.Tables.Count > 0)
                {
                    foreach (DataRow row in dataSet.Tables[0].Rows)
                    {
                        ZYLT zylt = new ZYLT();
                        if (dataSet.Tables[0].Columns.Contains("ID") && !Convert.IsDBNull(row["ID"]))
                            zylt.ID = row["ID"].ToString();
    
                        if (dataSet.Tables[0].Columns.Contains("CATEGORY") && !Convert.IsDBNull(row["CATEGORY"]))
                            zylt.CATEGORY = row["CATEGORY"].ToString();
    
                        if (dataSet.Tables[0].Columns.Contains("NUM") && !Convert.IsDBNull(row["NUM"]))
                            zylt.NUM = row["NUM"].ToString();
    
                        if (dataSet.Tables[0].Columns.Contains("QUESTION") && !Convert.IsDBNull(row["QUESTION"]))
                            zylt.QUESTION = row["QUESTION"].ToString();
    
                        if (dataSet.Tables[0].Columns.Contains("ANSWER") && !Convert.IsDBNull(row["ANSWER"]))
                            zylt.ANSWER = row["ANSWER"].ToString();
    
                        ZYLT_Lst.Add(zylt);
                    }
                }
                return ZYLT_Lst;
            }
        }
    }
    

      

    4、创建业务逻辑类 创建ZYLTBLL.cs类,专业擂台业务类。

      

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data;
    using DTXT.Model;
    using DTXT.DAL;
    using System.Data.OleDb;
    
    namespace DTXT.BLL
    {
        /// <summary> 
        /// 专业擂台业务类 
        /// </summary> 
        public class ZYLTBLL
        {
            /// <summary> 
            /// 查询用户列表 
            /// </summary> 
            public List<ZYLT> GetZYLTList(string sqlWhere = "")
            {
                List<ZYLT> ZYLT_Lst = new List<ZYLT>();
                string sql = "SELECT * FROM [专业擂台$] WHERE 1=1 ";
                if (sqlWhere != "")
                {
                    sql += "AND " + sqlWhere;
                }
                DataSet dateSet = ExcelHelper.GetReader(sql);
                ZYLT_Lst = ZYLT.ToList(dateSet);
                return ZYLT_Lst;
            }
    
            /// <summary> 
            /// 获取专业擂台总数 
            /// </summary> 
            public int GetZYLTCount()
            {
                int result = 0;
                string sql = "SELECT COUNT(*) FROM [专业擂台$]";
                result = ExcelHelper.GetScalar(sql);
                return result;
            }
    
            /// <summary> 
            /// 新增专业擂台
            /// </summary> 
            public int AddZYLT(ZYLT param)
            {
                int result = 0;
                string sql = "INSERT INTO [专业擂台$](ID,CATEGORY,NUM,QUESTION,ANSWER) VALUES(@ID,@CATEGORY,@NUM,@QUESTION,@ANSWER)";
                OleDbParameter[] oleDbParam = new OleDbParameter[] 
                    { 
                        new OleDbParameter("@ID", param.ID), 
                        new OleDbParameter("@CATEGORY", param.CATEGORY), 
                        new OleDbParameter("@NUM", param.NUM), 
                        new OleDbParameter("@QUESTION",param.QUESTION), 
                        new OleDbParameter("@ANSWER",param.ANSWER) 
                    };
                result = ExcelHelper.ExecuteCommand(sql, oleDbParam);
                return result;
            }
    
            /// <summary> 
            /// 修改专业擂台 在SET中要添加上 ID=@ID这个条件
            /// </summary> 
            public int UpdateZYLT(ZYLT param)
            {
                int result = 0;
                if (!string.IsNullOrEmpty(param.ID))
                {
                    string sql = "UPDATE [专业擂台$] SET ID=@ID,CATEGORY=@CATEGORY,NUM=@NUM,QUESTION=@QUESTION,ANSWER=@ANSWER WHERE ID=@ID";
                    OleDbParameter[] sqlParam = new OleDbParameter[] 
                    { 
                        new OleDbParameter("@ID",param.ID), 
                        new OleDbParameter("@CATEGORY", param.CATEGORY), 
                        new OleDbParameter("@NUM", param.NUM), 
                        new OleDbParameter("@QUESTION",param.QUESTION), 
                        new OleDbParameter("@ANSWER",param.ANSWER) 
                    };
                    result = ExcelHelper.ExecuteCommand(sql, sqlParam);
                }
                return result;
            }
    
            /// <summary> 
            /// 删除专业擂台
            /// </summary> 
            public int DeleteZYLT(ZYLT param)
            {
                int result = 0;
                if (!string.IsNullOrEmpty(param.ID))
                {
                    string sql = "DELETE FROM [专业擂台$] WHERE ID=@ID";
                    OleDbParameter[] sqlParam = new OleDbParameter[] 
                    { 
                         new OleDbParameter("@ID",param.ID), 
                     };
                    result = ExcelHelper.ExecuteCommand(sql, sqlParam);
                }
                return result;
            }
    
            /// <summary> 
            /// 删除专业擂台
            /// </summary> 
            public int DeleteZYLTByID(string ID)
            {
                int result = 0;
                if (!string.IsNullOrEmpty(ID))
                {
                    string sql = "DELETE [专业擂台$] WHERE ID=@ID";
                    OleDbParameter[] sqlParam = new OleDbParameter[] 
                    { 
                         new OleDbParameter("@ID",ID), 
                     };
                    result = ExcelHelper.ExecuteCommand(sql, sqlParam);
                }
                return result;
            }
    
        }
    }
    

      

      

  • 相关阅读:
    Android开发:关于WebView
    PHP+JQUEY+AJAX实现分页
    Bootstrap入门(二)栅格
    BootStrap入门教程 (一)
    mac 终端命令
    没有功能需求设计文档?对不起,拒绝开发!
    React 入门教程
    Webpack+React+ES6开发模式入门指南
    webpack2.0+ vue2.0
    一个小时学会jQuery
  • 原文地址:https://www.cnblogs.com/liangwenchao-912/p/6084349.html
Copyright © 2011-2022 走看看