• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    C#操作Excel数据增删改查示例
    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;
    }
    }
    }

    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 ListUserInfo> ToList(DataSet dataSet)
    {
    ListUserInfo> userList = new ListUserInfo>();
    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;
    }
    }
    }

    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 ListOrder> ToList(DataSet dataSet)
    {
    ListOrder> orderList = new ListOrder>();
    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;
    }
    }
    }

    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 ListUserInfo> GetUserList()
    {
    ListUserInfo> userList = new ListUserInfo>();
    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;
    }
    }
    }

    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 ListOrder> GetOrderList()
    {
    ListOrder> orderList = new ListOrder>();
    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;
    }
    }
    }
    您可能感兴趣的文章:
    • c#将Excel数据导入到数据库的实现代码
    • C#数据导入/导出Excel文件及winForm导出Execl总结
    • c#利用Excel直接读取数据到DataGridView
    • C#连接Excel2003和Excel2007以上版本做数据库的连接字符串
    • C#导出数据到Excel文件的方法
    • C#定制Excel界面并实现与数据库交互的方法
    • C#将Sql数据保存到Excel文件中的方法
    • C#自定义导出数据到Excel的类实例
    • C#利用Openxml读取Excel数据实例
    • C#如何操作Excel数据透视表
    上一篇:通过C#动态生成图书信息XML文件
    下一篇:IIS 浏览aspx页面出现无法显示XML页的解决方法分享
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    C#操作Excel数据增删改查示例 操作,Excel,数据,增,删改,