在VS2015中使用C#操作數(shù)據(jù)庫并實現(xiàn)Excel報表導(dǎo)出與打印的具體過程
前言
C#或VB.NEt與Sql和Access數(shù)據(jù)庫操作,包括SQL語句操作,以及Excel報表導(dǎo)出及打印功能,注意本例軟件版本為VS2015和office 2013
最近在開發(fā)項目時,頻繁涉及到數(shù)據(jù)庫操作以及數(shù)據(jù)報表導(dǎo)出打印的功能。使用的開發(fā)環(huán)境是VS2015 ,數(shù)據(jù)庫選用了Sql和Access ,同時要搭配Office 2013實現(xiàn)Excel報表相關(guān)操作。今天就來分享一下這其中的具體實現(xiàn)過程。
一、C# 連接Sql數(shù)據(jù)庫
在C# 中連接Sql數(shù)據(jù)庫,我們可以使用System.Data.SqlClient命名空間。以下是連接數(shù)據(jù)庫并執(zhí)行簡單查詢的代碼示例:
using System;
using System.Data.SqlClient;
class Program
{
static void Main()
{
string connectionString = "Data Source=YOUR_SERVER_NAME;Initial Catalog=YOUR_DATABASE_NAME;User ID=YOUR_USERNAME;Password=YOUR_PASSWORD";
using (SqlConnection connection = new SqlConnection(connectionString))
{
try
{
connection.Open();
string query = "SELECT * FROM YourTableName";
using (SqlCommand command = new SqlCommand(query, connection))
{
using (SqlDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine(reader.GetString(0)); // 假設(shè)第一列是字符串類型
}
}
}
}
catch (Exception ex)
{
Console.WriteLine("連接數(shù)據(jù)庫或執(zhí)行查詢時出錯: " + ex.Message);
}
}
}
}代碼分析
- 連接字符串:
connectionString定義了連接Sql數(shù)據(jù)庫所需的信息,包括服務(wù)器名、數(shù)據(jù)庫名、用戶名和密碼。你需要根據(jù)實際情況替換YOURSERVERNAME、YOURDATABASENAME、YOURUSERNAME和YOURPASSWORD。 - 使用
using語句:using語句確保在代碼塊結(jié)束時,連接、命令和數(shù)據(jù)讀取器都能正確地釋放資源,避免資源泄漏。 - 執(zhí)行查詢:
SqlCommand用于執(zhí)行SQL查詢語句,ExecuteReader方法用于執(zhí)行查詢并返回一個SqlDataReader對象,通過它可以逐行讀取查詢結(jié)果。
二、C# 連接Access數(shù)據(jù)庫
連接Access數(shù)據(jù)庫需要使用System.Data.OleDb命名空間。以下是連接Access數(shù)據(jù)庫并執(zhí)行查詢的代碼:
using System;
using System.Data.OleDb;
class Program
{
static void Main()
{
string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=YOUR_ACCESS_FILE_PATH;";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
try
{
connection.Open();
string query = "SELECT * FROM YourTableName";
using (OleDbCommand command = new OleDbCommand(query, connection))
{
using (OleDbDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine(reader.GetString(0));
}
}
}
}
catch (Exception ex)
{
Console.WriteLine("連接數(shù)據(jù)庫或執(zhí)行查詢時出錯: " + ex.Message);
}
}
}
}代碼分析
- 連接字符串:
Provider=Microsoft.ACE.OLEDB.12.0指定了使用的OLE DB提供程序,適用于Office 2007及以上版本的Access數(shù)據(jù)庫。YOURACCESSFILE_PATH需要替換為實際的Access數(shù)據(jù)庫文件路徑。 - 其他部分:整體結(jié)構(gòu)與連接Sql數(shù)據(jù)庫類似,只是使用的命名空間和具體的類不同,
OleDbConnection、OleDbCommand和OleDbDataReader用于與Access數(shù)據(jù)庫交互。
三、SQL語句操作
無論是Sql還是Access數(shù)據(jù)庫,SQL語句的基本操作是相似的。例如插入數(shù)據(jù):
-- Sql插入語句示例
INSERT INTO YourTableName (Column1, Column2, Column3)
VALUES ('Value1', 'Value2', 'Value3');
-- Access插入語句示例,語法基本一致
INSERT INTO YourTableName (Column1, Column2, Column3)
VALUES ('Value1', 'Value2', 'Value3');代碼分析
INSERT INTO語句用于向表中插入新的數(shù)據(jù)行。YourTableName是目標(biāo)表名,Column1、Column2、Column3是要插入數(shù)據(jù)的列名,VALUES后面跟著對應(yīng)列的值。
四、Excel報表導(dǎo)出
在C# 中實現(xiàn)Excel報表導(dǎo)出,可以使用Microsoft.Office.Interop.Excel庫。首先要在項目中添加對該庫的引用(在VS2015中,通過“項目” -> “添加引用”,然后在COM選項卡中找到“Microsoft Excel 15.0 Object Library”,這里15.0對應(yīng)Office 2013)。

C#或VB.NEt與Sql和Access數(shù)據(jù)庫操作,包括SQL語句操作,以及Excel報表導(dǎo)出及打印功能,注意本例軟件版本為VS2015和office 2013
以下是將數(shù)據(jù)導(dǎo)出到Excel的代碼示例:
using System;
using Excel = Microsoft.Office.Interop.Excel;
class Program
{
static void Main()
{
Excel.Application excelApp = new Excel.Application();
Excel.Workbook workbook = excelApp.Workbooks.Add();
Excel.Worksheet worksheet = workbook.Sheets[1];
// 假設(shè)已經(jīng)從數(shù)據(jù)庫獲取到數(shù)據(jù)
string[,] data = { { "Data1", "Data2" }, { "Data3", "Data4" } };
for (int i = 0; i < data.GetLength(0); i++)
{
for (int j = 0; j < data.GetLength(1); j++)
{
worksheet.Cells[i + 1, j + 1] = data[i, j];
}
}
workbook.SaveAs("YourExcelFilePath.xlsx");
workbook.Close();
excelApp.Quit();
}
}代碼分析
- 創(chuàng)建Excel對象:
Excel.Application創(chuàng)建一個Excel應(yīng)用程序?qū)嵗?code>Workbook創(chuàng)建一個新的工作簿,Worksheet獲取工作簿中的第一個工作表。 - 填充數(shù)據(jù):通過嵌套的
for循環(huán)將數(shù)據(jù)數(shù)組填充到Excel工作表的單元格中。 - 保存并關(guān)閉:
SaveAs方法保存Excel文件,Close關(guān)閉工作簿,Quit退出Excel應(yīng)用程序。
五、Excel報表打印
打印Excel報表也可以通過Microsoft.Office.Interop.Excel庫實現(xiàn):
using System;
using Excel = Microsoft.Office.Interop.Excel;
class Program
{
static void Main()
{
Excel.Application excelApp = new Excel.Application();
Excel.Workbook workbook = excelApp.Workbooks.Open("YourExcelFilePath.xlsx");
Excel.Worksheet worksheet = workbook.Sheets[1];
worksheet.PrintOut();
workbook.Close();
excelApp.Quit();
}
}代碼分析
- 打開Excel文件:
Workbooks.Open方法打開指定路徑的Excel文件。 - 打印:
PrintOut方法直接執(zhí)行打印操作,使用默認(rèn)的打印機和打印設(shè)置。 - 關(guān)閉資源:同樣,最后關(guān)閉工作簿和Excel應(yīng)用程序以釋放資源。
希望以上內(nèi)容能幫助大家在VS2015環(huán)境下,順利實現(xiàn)C# 與Sql、Access數(shù)據(jù)庫的操作,以及Excel報表的導(dǎo)出與打印功能。如果在實際應(yīng)用中有任何問題,歡迎一起交流探討。

總結(jié)
到此這篇關(guān)于在VS2015中使用C#操作數(shù)據(jù)庫并實現(xiàn)Excel報表導(dǎo)出與打印的文章就介紹到這了,更多相關(guān)C#操作數(shù)據(jù)庫并導(dǎo)出與打印Excel內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- c#將Excel數(shù)據(jù)導(dǎo)入到數(shù)據(jù)庫的實現(xiàn)代碼
- C#實現(xiàn)Excel表數(shù)據(jù)導(dǎo)入Sql Server數(shù)據(jù)庫中的方法
- c#生成excel示例sql數(shù)據(jù)庫導(dǎo)出excel
- C#實現(xiàn)Excel數(shù)據(jù)導(dǎo)入到SQL server數(shù)據(jù)庫
- C#實現(xiàn)導(dǎo)出數(shù)據(jù)庫數(shù)據(jù)到Excel文件
- .NET使用C#導(dǎo)入Excel文件數(shù)據(jù)到數(shù)據(jù)庫
- 使用C#實現(xiàn)Excel實時讀取并導(dǎo)入SQL數(shù)據(jù)庫
相關(guān)文章
c#winform窗口頁面一打開就加載的實現(xiàn)方式
這篇文章主要介紹了c#winform窗口頁面一打開就加載的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06

