C#操作Excel数据增删改查。

首先创建ExcelDB.xlsx文件,并添加两张工作表。

工作表1:

UserInfo表,字段:UserId、UserName、Age、Address、CreateTime。

工作表2:

Order表,字段:OrderNo、ProductName、Quantity、Money、SaleDate。

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using System.Data;  namespace MyStudy.DAL
{  /// <summary>  /// Excel文件处理类  /// </summary>  public class ExcelHelper  {  private static string fileName = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + @"/ExcelFile/ExcelDB.xlsx";  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;  }  }
}  

View Code

2、 创建实体类

2.1 创建UserInfo.cs类,用户信息实体类。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;  namespace MyStudy.Model
{  /// <summary>  /// 用户信息实体类  /// </summary>  public class UserInfo  {  public int UserId { get; set; }  public string UserName { get; set; }  public int? Age { get; set; }  public string Address { get; set; }  public DateTime? CreateTime { get; set; }  /// <summary>    /// 将DataTable转换成List数据    /// </summary>    public static List<UserInfo> ToList(DataSet dataSet)  {  List<UserInfo> userList = new List<UserInfo>();  if (dataSet != null && dataSet.Tables.Count > 0)  {  foreach (DataRow row in dataSet.Tables[0].Rows)  {  UserInfo user = new UserInfo();  if (dataSet.Tables[0].Columns.Contains("UserId") && !Convert.IsDBNull(row["UserId"]))  user.UserId = Convert.ToInt32(row["UserId"]);  if (dataSet.Tables[0].Columns.Contains("UserName") && !Convert.IsDBNull(row["UserName"]))  user.UserName = (string)row["UserName"];  if (dataSet.Tables[0].Columns.Contains("Age") && !Convert.IsDBNull(row["Age"]))  user.Age = Convert.ToInt32(row["Age"]);  if (dataSet.Tables[0].Columns.Contains("Address") && !Convert.IsDBNull(row["Address"]))  user.Address = (string)row["Address"];  if (dataSet.Tables[0].Columns.Contains("CreateTime") && !Convert.IsDBNull(row["CreateTime"]))  user.CreateTime = Convert.ToDateTime(row["CreateTime"]);  userList.Add(user);  }  }  return userList;  }    }
}  

View Code

2.2 创建Order.cs类,订单实体类。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;  namespace MyStudy.Model
{  /// <summary>  /// 订单实体类  /// </summary>  public class Order  {  public string OrderNo { get; set; }  public string ProductName { get; set; }  public int? Quantity { get; set; }  public decimal? Money { get; set; }  public DateTime? SaleDate { get; set; }  /// <summary>  /// 将DataTable转换成List数据  /// </summary>  public static List<Order> ToList(DataSet dataSet)  {  List<Order> orderList = new List<Order>();  if (dataSet != null && dataSet.Tables.Count > 0)  {  foreach (DataRow row in dataSet.Tables[0].Rows)  {  Order order = new Order();  if (dataSet.Tables[0].Columns.Contains("OrderNo") && !Convert.IsDBNull(row["OrderNo"]))  order.OrderNo = (string)row["OrderNo"];  if (dataSet.Tables[0].Columns.Contains("ProductName") && !Convert.IsDBNull(row["ProductName"]))  order.ProductName = (string)row["ProductName"];  if (dataSet.Tables[0].Columns.Contains("Quantity") && !Convert.IsDBNull(row["Quantity"]))  order.Quantity = Convert.ToInt32(row["Quantity"]);  if (dataSet.Tables[0].Columns.Contains("Money") && !Convert.IsDBNull(row["Money"]))  order.Money = Convert.ToDecimal(row["Money"]);  if (dataSet.Tables[0].Columns.Contains("SaleDate") && !Convert.IsDBNull(row["SaleDate"]))  order.SaleDate = Convert.ToDateTime(row["SaleDate"]);  orderList.Add(order);  }  }  return orderList;  }  }
}  

View Code

3、创建业务逻辑类

3.1 创建UserInfoBLL.cs类,用户信息业务类。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using MyStudy.Model;
using MyStudy.DAL;
using System.Data.OleDb;  namespace MyStudy.BLL
{  /// <summary>  /// 用户信息业务类  /// </summary>  public class UserInfoBLL  {  /// <summary>    /// 查询用户列表    /// </summary>    public List<UserInfo> GetUserList()  {  List<UserInfo> userList = new List<UserInfo>();  string sql = "SELECT * FROM [UserInfo$]";  DataSet dateSet = ExcelHelper.GetReader(sql);  userList = UserInfo.ToList(dateSet);  return userList;  }  /// <summary>    /// 获取用户总数    /// </summary>    public int GetUserCount()  {  int result = 0;  string sql = "SELECT COUNT(*) FROM [UserInfo$]";  result = ExcelHelper.GetScalar(sql);  return result;  }  /// <summary>    /// 新增用户信息    /// </summary>    public int AddUserInfo(UserInfo param)  {  int result = 0;  string sql = "INSERT INTO [UserInfo$](UserId,UserName,Age,Address,CreateTime) VALUES(@UserId,@UserName,@Age,@Address,@CreateTime)";  OleDbParameter[] oleDbParam = new OleDbParameter[]    {    new OleDbParameter("@UserId", param.UserId),     new OleDbParameter("@UserName", param.UserName),     new OleDbParameter("@Age", param.Age),    new OleDbParameter("@Address",param.Address),  new OleDbParameter("@CreateTime",param.CreateTime)    };  result = ExcelHelper.ExecuteCommand(sql, oleDbParam);  return result;  }  /// <summary>    /// 修改用户信息    /// </summary>    public int UpdateUserInfo(UserInfo param)  {  int result = 0;  if (param.UserId > 0)  {  string sql = "UPDATE [UserInfo$] SET UserName=@UserName,Age=@Age,Address=@Address WHERE UserId=@UserId";  OleDbParameter[] sqlParam = new OleDbParameter[]    {    new OleDbParameter("@UserId",param.UserId),    new OleDbParameter("@UserName", param.UserName),     new OleDbParameter("@Age", param.Age),    new OleDbParameter("@Address",param.Address)    };  result = ExcelHelper.ExecuteCommand(sql, sqlParam);  }  return result;  }  /// <summary>    /// 删除用户信息    /// </summary>    public int DeleteUserInfo(UserInfo param)  {  int result = 0;  if (param.UserId > 0)  {  string sql = "DELETE [UserInfo$] WHERE UserId=@UserId";  OleDbParameter[] sqlParam = new OleDbParameter[]    {    new OleDbParameter("@UserId",param.UserId),    };  result = ExcelHelper.ExecuteCommand(sql, sqlParam);  }  return result;  }    }
}  

View Code

3.2 创建OrderBLL.cs类,订单业务类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using MyStudy.Model;
using MyStudy.DAL;
using System.Data.OleDb;  namespace MyStudy.BLL
{  /// <summary>  /// 订单业务类  /// </summary>  public class OrderBLL  {  /// <summary>    /// 查询订单列表    /// </summary>    public List<Order> GetOrderList()  {  List<Order> orderList = new List<Order>();  string sql = "SELECT * FROM [Order$]";  DataSet dateSet = ExcelHelper.GetReader(sql);  orderList = Order.ToList(dateSet);  return orderList;  }  /// <summary>    /// 获取订单总数    /// </summary>    public int GetOrderCount()  {  int result = 0;  string sql = "SELECT COUNT(*) FROM [Order$]";  result = ExcelHelper.GetScalar(sql);  return result;  }  /// <summary>    /// 新增订单    /// </summary>    public int AddOrder(Order param)  {  int result = 0;  string sql = "INSERT INTO [Order$](OrderNo,ProductName,Quantity,Money,SaleDate) VALUES(@OrderNo,@ProductName,@Quantity,@Money,@SaleDate)";  OleDbParameter[] oleDbParam = new OleDbParameter[]    {    new OleDbParameter("@OrderNo", param.OrderNo),     new OleDbParameter("@ProductName", param.ProductName),     new OleDbParameter("@Quantity", param.Quantity),    new OleDbParameter("@Money",param.Money),  new OleDbParameter("@SaleDate",param.SaleDate)    };  result = ExcelHelper.ExecuteCommand(sql, oleDbParam);  return result;  }  /// <summary>    /// 修改订单    /// </summary>    public int UpdateOrder(Order param)  {  int result = 0;  if (!String.IsNullOrEmpty(param.OrderNo))  {  string sql = "UPDATE [Order$] SET ProductName=@ProductName,Quantity=@Quantity,Money=@Money WHERE OrderNo=@OrderNo";  OleDbParameter[] sqlParam = new OleDbParameter[]    {    new OleDbParameter("@OrderNo",param.OrderNo),    new OleDbParameter("@ProductName",param.ProductName),    new OleDbParameter("@Quantity", param.Quantity),     new OleDbParameter("@Money", param.Money)     };  result = ExcelHelper.ExecuteCommand(sql, sqlParam);  }  return result;  }  /// <summary>    /// 删除订单    /// </summary>    public int DeleteOrder(Order param)  {  int result = 0;  if (!String.IsNullOrEmpty(param.OrderNo))  {  string sql = "DELETE [Order$] WHERE OrderNo=@OrderNo";  OleDbParameter[] sqlParam = new OleDbParameter[]    {    new OleDbParameter("@OrderNo",param.OrderNo),    };  result = ExcelHelper.ExecuteCommand(sql, sqlParam);  }  return result;  }    }
}  

View Code

转载于:https://www.cnblogs.com/MirageFox/p/4919672.html

C#操作Excel数据增删改查(转)相关推荐

  1. 对Android手机系统日历数据增删改查操作详解

    Android手机系统日历数据增删改查详解 前段时间需要开发提取手机系统的日历数据的功能,自己开始研究了一下,刚开始还是比较懵逼的,经过仔细研究还是能够完全贯通了. 如果不想细细研究,可以直接下载我的 ...

  2. 怎么用php操作mysql删除数据库代码_如何使用php操作mysql的增删改查?

    php操作mysql的增删改查方法:1.插入语句[insert into 数据表名(字段1,字段2,....) values("值1","值2",..)]:2. ...

  3. Django实现对数据库数据增删改查(二)

    目录 1.基本框架 1.1.路由分发 1.2.视图函数-逻辑处理 1.3.模板 2.查询功能 2.1.视图函数 2.2.模板函数 3.添加功能 3.1.路由分发 3.2视图函数 3.3.模板 4.编辑 ...

  4. 一篇文章教会你创建vue项目和使用vue.js实现数据增删改查

    简介:一篇文章教会你创建vue项目和使用vue.js实现数据增删改查 [一.项目背景] 在管理员的一些后台页面里,数据列表中都会对这些数据进行增删改查的操作,例如管理员添加商品.修改商品价格.删除商品 ...

  5. SpringBoot操作MongoDB实现增删改查

    本篇博客主讲如何使用SpringBoot操作MongoDB. SpringBoot操作MongoDB实现增删改查 (1)pom.xml引入依赖 <dependency> <group ...

  6. list vue 添加数据方法_一篇文章教会你创建vue项目和使用vue.js实现数据增删改查...

    简介:一篇文章教会你创建vue项目和使用vue.js实现数据增删改查 [一.项目背景] 在管理员的一些后台页面里,数据列表中都会对这些数据进行增删改查的操作,例如管理员添加商品.修改商品价格.删除商品 ...

  7. jdbc链接mysql按照id查询_使用jdbc连接并操作Oracle数据库(增删改查IDUS)

    使用jdbc连接并操作Oracle数据库(增删改查IDUS) [oracle@zaibei-db ~]$ sqlplus /nolog SQL*Plus: Release 11.2.0.4.0 Pro ...

  8. eggjs增删改查MySQL,nodejs操作mysql实现增删改查

    首先需要安装mysql模块:npm install mysql –save 然后创建user数据表: 接着使用nodejs对数据库进行增删改查: //引入mysql模块 var mysql = req ...

  9. nodejs mysql 增删改查_nodejs操作mysql实现增删改查的实例

    首先需要安装mysql模块:npm install mysql --save 然后创建user数据表: 接着使用nodejs对数据库进行增删改查: .[活动]2017 CSDN博客专栏评选 [评论送书 ...

最新文章

  1. 最牛X的GCC 内联汇编
  2. 第4章javascript变量、作用域和内存回收
  3. 批量更改Windows操作系统文件名
  4. 后端开发实践:Spring Boot项目模板,拿去用吧!
  5. 转: 理解RESTful架构
  6. 实现一个无法被继承的C++类
  7. oracle运行环境配置,oracle 环境配置开机自启动
  8. Qt Dialog捕捉鼠标移动事件
  9. [转].net仿传奇机器人配置文件
  10. Mac上的IDEA安装配置maven
  11. linux启动redis指定端口,linux redis实现自定义运行多端口、多实例 | 极安全-JiSec
  12. 安装debian,服务器选择ftp2.cn
  13. shell脚本中一些日期的定义
  14. 机器人开发--NDC方案
  15. 无需翻墙解决谷歌浏览器-谷歌翻译无法使用的解决方法
  16. HIVE --- Metastore
  17. LCD高抗干扰液晶段码屏显示驱动芯片:VK2C21A/B/BA/C/D 大量应用于音箱/音响面板LCD显示驱动
  18. 蓝桥杯:魔方旋转问题【高职组】
  19. Oracle11g下载地址Oracle下载
  20. 运行Intel realsense L515相机

热门文章

  1. 关于Eclipse安装Scala插件不显示
  2. 边缘提取和场景分割 学派?
  3. 使用Boost_MPI进行并行编程
  4. Linux shell 操作命令 mkdir
  5. JavaScript: 取得 function 的所有参数名
  6. superset出现unhashable type: ‘dict‘
  7. No execution.target specified in your configuration file.
  8. Error: Could not find or load main class org.apache.spark.deploy.yarn.ExecutorLauncher
  9. 海量特征按照缺失值null/NAN数量异同进行分组归类
  10. ubuntu右键打开终端(Open Terminal Here)失效