版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、C#操作Excel數(shù)據(jù)增刪改查示例Excel數(shù)據(jù)增刪改查我們可以使用c#進(jìn)行操作,首先創(chuàng)建 ExcelDB.xlsx 文件,并添加兩張工作表,接下按照下面的 操作步驟即可C#操作Excel數(shù)據(jù)增刪改查。首先創(chuàng)建ExcelDB.xIsx文件, 并添加兩張工作表。 工作表 1: UserInfo 表,字段: UserId 、UserName、Age、Address、CreateTime。 工作表 2: Order表,字段:OrderNo、ProductName、Quantity、Money、SaleDate。1、創(chuàng)建 ExcelHelper.cs 類, Excel 文件處理類 復(fù)制代碼代碼如下 :
2、 using System; using System.Collections.Generic; usingSystem.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.
3、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;
4、 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;" + &quo
5、t;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 i
6、f (connection.State =System.Data.ConnectionState.Broken) connection.Close();connection.Open(); return connection; / <summary>/ 執(zhí)行無參數(shù)的 SQL 語句 / </summary> / <param name="sql">SQL 語句 </param> / <returns> 返 回受 SQL 語句影響的行數(shù) &
7、amp;lt;/returns> public static intExecuteCommand(string sql) OleDbCommand cmd = newOleDbCommand(sql, Connection); int result = cmd.ExecuteNonQuery(); connection.Close(); return result; / <summary> / 執(zhí)行有參數(shù)的 SQL 語句 / </summary> / <param name="sql"&am
8、p;gt;SQL 語句</param> / <param name="values"> 參數(shù)集合</param> / <returns> 返回受 SQL 語句影響的行數(shù)</returns> public static int ExecuteCommand(string sql, params OleDbParameter values) OleDbCommand cmd = new OleDbCommand(sql, Connectio
9、n);cmd.Parameters.AddRange(values); int result = cmd.ExecuteNonQuery(); connection.Close(); return result; / <summary> / 返回單個值無參數(shù)的 SQL 語句 / </summary> / <param name="sql">SQL 語句</param> / <returns> 返回受 SQL 語句查詢的行數(shù)<
10、;/returns> public static int GetScalar(string sql) OleDbCommand cmd = new OleDbCommand(sql,Connection); int result = Convert.ToInt32(cmd.ExecuteScalar();connection.Close(); return result; / <summary> / 返 回單個值有參數(shù)的 SQL 語句 / </summary> / <param name="sql&q
11、uot;>SQL 語句 </param> / <param name="parameters"> 參數(shù)集合 </param> / <returns> 返回受 SQL 語句查詢的行數(shù) </returns>public static int GetScalar(string sql, params OleDbParameter parameters) OleDbCommand cmd = new OleDbCommand(sq
12、l,Connection); cmd.Parameters.AddRange(parameters); int result = Convert.ToInt32(cmd.ExecuteScalar(); connection.Close();return result; / <summary> / 執(zhí)行查詢無參數(shù) SQL語句 / </summary> / <param name="sql">SQL語句 </param> / <returns&
13、gt; 返回數(shù)據(jù)集</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> / 執(zhí)行查詢有參數(shù) SQL 語句 / </summary>
14、; / <param name="sql">SQL 語句</param> / <param name="parameters"> 參數(shù)集合</param> / <returns> 返回數(shù)據(jù)集 </returns>public static DataSet GetReader(string sql, paramsOleDbParameter parameters) OleDbDataAdap
15、ter da = newOleDbDataAdapter(sql, Connection);da.SelectCommand.Parameters.AddRange(parameters); DataSet ds = new DataSet(); da.Fill(ds); connection.Close(); return ds; 2 、 創(chuàng)建實體類 2.1 創(chuàng)建 UserInfo.cs 類,用戶信息 實體類。復(fù)制代碼代碼如下 : using System; using System.Collections.Generic; usingSystem.Linq; using System.Te
16、xt; using System.Data; namespaceMyStudy.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; / <summa
17、ry> / 將 DataTable轉(zhuǎn)換成 List 數(shù)據(jù) / </summary> public staticList<UserInfo> ToList(DataSet dataSet) List<UserInfo> userList = new List<UserInfo>();if (dataSet != null && dataSet.Tables.Count > 0) foreach (DataRow row in
18、dataSet.Tables0.Rows) UserInfo user = new UserInfo(); if (dataSet.Tables0.Columns.Contains("UserId") && !Convert.IsDBNull(row"UserId") user.UserId =Convert.ToInt32(row"UserId"); if (dataSet.Tables0.Columns.Contains("UserName") &&
19、; !Convert.IsDBNull(row"UserName") user.UserName = (string)row"UserName" if (dataSet.Tables0.Columns.Contains("Age") && !Convert.IsDBNull(row"Age") user.Age =Convert.ToInt32(row"Age"); if (dataSet.Tables0.Columns.Contains("Addres
20、s") && !Convert.IsDBNull(row"Address") user.Address = (string)row"Address" if/(dataSet.Tables0.Columns.Contains("CreateTime") && !Convert.IsDBNull(row"CreateTime") user.CreateTime =Convert.ToDateTime(row"CreateTime&quo
21、t;);userList.Add(user); return userList; 2.2創(chuàng)建 Order.cs類,訂單實體類。復(fù)制代碼代碼如下 : using System; using System.Collections.Generic; usingSystem.Linq; using System.Text; using System.Data; namespaceMyStudy.Model / <summary> /訂單實體類 / </summary> public class Order public string OrderN
22、o get; set; public string ProductName get; set; public int?Quantity get; set; public decimal? Money get; set; publicDateTime? SaleDate get; set; / <summary> / 將DataTable 轉(zhuǎn)換成 List 數(shù)據(jù) / </summary> public staticList<Order> ToList(DataSet dataSet) List<Or
23、der>orderList = new List<Order>(); if (dataSet != null && dataSet.Tables.Count > 0) foreach (DataRow row in dataSet.Tables0.Rows) Order order = new Order(); if (dataSet.Tables0.Columns.Contains("OrderNo") && !Convert.IsDBNull(row&
24、quot;OrderNo") order.OrderNo = (string)row"OrderNo" if(dataSet.Tables0.Columns.Contains("ProductName") && !Convert.IsDBNull(row"ProductName") order.ProductName = (string)row"ProductName" if (dataSet.Tables0.Columns.Contains("Quantity&
25、quot;) && !Convert.IsDBNull(row"Quantity") order.Quantity = Convert.ToInt32(row"Quantity"); if (dataSet.Tables0.Columns.Contains("Money") && !Convert.IsDBNull(row"Money") order.Money = Convert.ToDecimal(row"Money"); if
26、 (dataSet.Tables0.Columns.Contains("SaleDate") && !Convert.IsDBNull(row"SaleDate") order.SaleDate = Convert.ToDateTime(row"SaleDate");orderList.Add(order); return orderList; 3 、創(chuàng)建業(yè)務(wù)邏 輯類 3.1 創(chuàng)建 UserInfoBLL.cs 類,用戶信息業(yè)務(wù)類。復(fù)制代碼代碼如下 : using System; using Syste
27、m.Collections.Generic; usingSystem.Linq; using System.Text; using System.Data; usingMyStudy.Model; using MyStudy.DAL; usingSystem.Data.OleDb; namespace MyStudy.BLL / <summary> / 用戶信息業(yè)務(wù)類 / </summary>public class UserInfoBLL / <summary> / 查詢用戶 列表 / </su
28、mmary> public List<UserInfo>GetUserList() List<UserInfo> userList = newList<UserInfo>(); string sql = "SELECT * FROM UserInfo$" DataSet dateSet = ExcelHelper.GetReader(sql);userList = UserInfo.ToList(dateSet); return userList; / <summ
29、ary> / 獲取用戶總數(shù) / </summary>public int GetUserCount() int result = 0; string sql = "SELECTCOUNT(*) FROM UserInfo$" result =ExcelHelper.GetScalar(sql); return result; / <summary>/ 新增用戶信息 / </summary> public intAddUserInfo(UserInfo param) int re
30、sult = 0; string sql = "INSERT INTO UserInfo$(UserId,UserName,Age,Address,CreateTime)VALUES(UserId,UserName,Age,Address,CreateTim e)" OleDbParameter oleDbParam = new OleDbParameter new OleDbParameter("UserId", param.UserId), newOleDbParameter("UserName", param.UserName)
31、, newOleDbParameter("Age", param.Age), newOleDbParameter("Address",param.Address), newOleDbParameter("CreateTime",param.CreateTime) ; result =ExcelHelper.ExecuteCommand(sql, oleDbParam); return result; / <summary> / 修改用戶信息 / </summary>public
32、int UpdateUserInfo(UserInfo param) int result = 0; if(param.UserId > 0) string sql = "UPDATE UserInfo$ SETUserName=UserName,Age=Age,Address=AddressWHERE UserId=UserId" OleDbParameter sqlParam = newOleDbParameter newOleDbParameter("UserId",param.UserId), newOleDbParameter(&
33、quot;UserName", param.UserName), newOleDbParameter("Age", param.Age), newOleDbParameter("Address",param.Address) ; result =ExcelHelper.ExecuteCommand(sql, sqlParam); return result; / <summary> / 刪除用戶信息 / </summary>public int DeleteUserInfo(UserInf
34、o param) int result = 0; if (param.UserId > 0) string sql = "DELETE UserInfo$WHERE UserId=UserId" OleDbParameter sqlParam = newOleDbParameter newOleDbParameter("UserId",param.UserId), ; result =ExcelHelper.ExecuteCommand(sql, sqlParam); return result; 3.2 創(chuàng)建 OrderBLL.cs 類,
35、訂單業(yè)務(wù)類 復(fù)制代碼代碼如下 : using System; using System.Collections.Generic; usingSystem.Linq; using System.Text; using System.Data; usingMyStudy.Model; using MyStudy.DAL; usingSystem.Data.OleDb; namespace MyStudy.BLL /<summary> / 訂單業(yè)務(wù)類 / </summary> public class OrderBLL / <su
36、mmary> / 查詢訂單列表 / </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
37、 orderList; / <summary> / 獲取訂單總數(shù) / </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,S aleDate)" OleDbParameter oleDbParam = newOleDbParameter new OleDbParameter("OrderNo", param.OrderNo), new OleDbParameter(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年食品加工設(shè)備租賃合同
- 2024年精裝修住宅租賃節(jié)能減排合同
- 二零二五年度地下空間開發(fā)工程勘察設(shè)計合同3篇
- 2024年特許經(jīng)營合同:連鎖加盟
- 二零二五年度資產(chǎn)保全第三方擔(dān)保借款資產(chǎn)保全合同模板3篇
- 二零二五年度歷史文化保護(hù)項目合同文物保護(hù)與修復(fù)工程協(xié)議3篇
- 古詩詞誦讀《燕歌行 并序》說課稿 2024-2025學(xué)年統(tǒng)編版高中語文選擇性必修中冊001
- 二零二五年度辦公室裝修工程環(huán)保材料認(rèn)證合同6篇
- 二零二五年度工廠廢棄物綜合利用合同3篇
- 2024年華師大新版選擇性必修2語文下冊月考試卷
- 當(dāng)代青年信仰研究報告
- GB/T 42455.2-2024智慧城市建筑及居住區(qū)第2部分:智慧社區(qū)評價
- 物流倉儲設(shè)備維護(hù)保養(yǎng)手冊
- 農(nóng)商銀行小微企業(yè)續(xù)貸實施方案
- 2024年山西廣播電視臺招聘20人歷年高頻500題難、易錯點模擬試題附帶答案詳解
- 2024山西太原文化局直屬事業(yè)單位招聘30人歷年高頻500題難、易錯點模擬試題附帶答案詳解
- 中國普通食物營養(yǎng)成分表(修正版)
- 2024年北京市第一次普通高中學(xué)業(yè)水平合格性考試英語仿真模擬卷03(全解全析)
- 2024年江蘇省淮安技師學(xué)院長期招聘高技能人才3人高頻考題難、易錯點模擬試題(共500題)附帶答案詳解
- 應(yīng)急救援員五級理論考試題庫含答案
- 大學(xué)介紹清華大學(xué)宣傳
評論
0/150
提交評論