日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

转---SQL与EXCEL交互(导出/导入)

發布時間:2025/3/16 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 转---SQL与EXCEL交互(导出/导入) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SQL與EXCEL交互(導出/導入)

EXCE->SQL
//方案一: 通過OleDB方式獲取Excel文件的數據,然后通過DataSet中轉到SQL Server

openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Excel files(*.xls)|*.xls";

if(openFileDialog.ShowDialog()==DialogResult.OK)
{
???? FileInfo fileInfo = new FileInfo(openFileDialog.FileName);
???? string filePath = fileInfo.FullName;
???? string connExcel = "rovider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=Excel 8.0";
????
???? try
???? {
???????? OleDbConnection oleDbConnection = new OleDbConnection(connExcel);
???????? oleDbConnection.Open();
????????
???????? //獲取excel表
???????? DataTable dataTable = oleDbConnection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

???????? //獲取sheet名,其中[0][1]...[N]: 按名稱排列的表單元素
???????? string tableName = dataTable.Rows[0][2].ToString().Trim();
???????? tableName = "[" + tableName.Replace("'","") + "]";

???????? //利用SQL語句從Excel文件里獲取數據
???????? //string query = "SELECT classDate,classPlace,classTeacher,classTitle,classID FROM " + tableName;
???????? string query = "SELECT 曰期,開課城市,講師,課程名稱,持續時間 FROM " + tableName;
???????? dataSet = new DataSet();

???????? //OleDbCommand oleCommand = new OleDbCommand(query, oleDbConnection);
???????? //OleDbDataAdapter oleAdapter = new OleDbDataAdapter(oleCommand);
???????? OleDbDataAdapter oleAdapter = new OleDbDataAdapter(query,connExcel);
????????
???????? oleAdapter.Fill(dataSet,"gch_Class_Info");

???????? //dataGrid1.DataSource = dataSet;
???????? //dataGrid1.DataMember = tableName;
???????? dataGrid1.SetDataBinding(dataSet,"gch_Class_Info");

???????? //從excel文件獲得數據后,插入記錄到SQL Server的數據表
???????? DataTable dataTable1 = new DataTable();
????????
???????? SqlDataAdapter sqlDA1 = new SqlDataAdapter(@"SELECT classID, classDate,
classPlace, classTeacher, classTitle, durativeDate FROM gch_Class_Info",sqlConnection1);
????????
???????? SqlCommandBuilder sqlCB1 = new SqlCommandBuilder(sqlDA1);
????????
???????? sqlDA1.Fill(dataTable1);

???????? foreach(DataRow dataRow in dataSet.Tables["gch_Class_Info"].Rows)
???????? {
???????????? DataRow dataRow1 = dataTable1.NewRow();
????????????
???????????? dataRow1["classDate"] = dataRow["曰期"];
???????????? dataRow1["classPlace"] = dataRow["開課城市"];
???????????? dataRow1["classTeacher"] = dataRow["講師"];
???????????? dataRow1["classTitle"] = dataRow["課程名稱"];
???????????? dataRow1["durativeDate"] = dataRow["持續時間"];

???????????? dataTable1.Rows.Add(dataRow1);
???????? }

???????? Console.WriteLine("新插入 " + dataTable1.Rows.Count.ToString() + " 條記錄");
???????? sqlDA1.Update(dataTable1);
????????
???????? oleDbConnection.Close();

???? }
???? catch(Exception ex)
???? {
???????? Console.WriteLine(ex.ToString());
???? }
}





//方案二: 直接通過SQL語句執行SQL Server的功能函數將Excel文件轉換到SQL Server數據庫

OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "Excel files(*.xls)|*.xls";

SqlConnection sqlConnection1 = null;

if(openFileDialog.ShowDialog()==DialogResult.OK)
{
???? string filePath = openFileDialog.FileName;

???? sqlConnection1 = new SqlConnection();
???? sqlConnection1.ConnectionString = "server=(local);integrated security=SSPI;initial catalog=Library";

???? //import excel into SQL Server 2000
???? /*string importSQL = "SELECT * into live41 FROM OpenDataSource" +
???????? "('Microsoft.Jet.OLEDB.4.0','Data Source=" + "\"" + "E:\\022n.xls" + "\"" +
???????? "; User ID=assword=; Extended properties=Excel 5.0')...[Sheet1$]";*/

???? //export SQL Server 2000 into excel
???? string exportSQL = @"EXEC master..xp_cmdshell
'bcp Library.dbo.live41 out " + filePath + "-c -q -S" + "\"" + "\"" +
???????? " -U" + "\"" + "\"" + " -P" + "\"" + "\"" + "\'";
????
???? try
???? {
???????? sqlConnection1.Open();
????????
???????? //SqlCommand sqlCommand1 = new SqlCommand();
???????? //sqlCommand1.Connection = sqlConnection1;
???????? //sqlCommand1.CommandText = importSQL;
???????? //sqlCommand1.ExecuteNonQuery();
???????? //MessageBox.Show("import finish!");
????????
???????? SqlCommand sqlCommand2 = new SqlCommand();
???????? sqlCommand2.Connection = sqlConnection1;
???????? sqlCommand2.CommandText = exportSQL;
???????? sqlCommand2.ExecuteNonQuery();
???????? MessageBox.Show("export finish!");
???? }
???? catch(Exception ex)
???? {
???????? MessageBox.Show(ex.ToString());
???? }
}

if(sqlConnection1!=null)
{
???? sqlConnection1.Close();
???? sqlConnection1 = null;
}






//方案三: 通過到入Excel的VBA dll,通過VBA接口獲取Excel數據到DataSet

OpenFileDialog openFile = new OpenFileDialog();
openFile.Filter = "Excel files(*.xls)|*.xls";

ExcelIO excelio = new ExcelIO();

if(openFile.ShowDialog()==DialogResult.OK)
{
???? if(excelio!=null)
???????? excelio.Close();

???? excelio = new ExcelIO(openFile.FileName);
???? object[,] range = excelio.GetRange();
???? excelio.Close();

????
???? DataSet ds = new DataSet("xlsRange");

???? int x = range.GetLength(0);
???? int y = range.GetLength(1);

???? DataTable dt = new DataTable("xlsTable");
???? DataRow dr;
???? DataColumn dc;
????
???? ds.Tables.Add(dt);

???? for(int c=1; c<=y; c++)
???? {
???????? dc = new DataColumn();
???????? dt.Columns.Add(dc);
???? }
????
???? object[] temp = new object[y];
????
???? for(int i=1; i<=x; i++)
???? {
???????? dr = dt.NewRow();

???????? for(int j=1; j<=y; j++)
???????? {
???????????? temp[j-1] = range[i,j];
???????? }
????????
???????? dr.ItemArray = temp;
???????? ds.Tables[0].Rows.Add(dr);
???? }

???? dataGrid1.SetDataBinding(ds,"xlsTable");
????
???? if(excelio!=null)
???????? excelio.Close();
} SQL->EXCEL
???????? public class OPExcel
???????? {
???????????????? public OPExcel(){}
????????????????
???????????????? public bool WritDataSetToExcel(DataSet ds,string ExcelPath,ProgressBar pb)
???????????????? {
???????????????????????? if(ds==null)return false;
???????????????????????? int row=ds.Tables [0].Rows .Count ;
???????????????????????? int col=ds.Tables [0].Columns .Count ;
???????????????????????? if(row <1 || col<1)return false;
???????????????????????? pb.Minimum =0;pb.Maximum =row;pb.Value =0;
???????????????????????? Excel.ApplicationClass excel=new Excel.ApplicationClass ();
???????????????????????? try
???????????????????????? {????????
???????????????????????????????? excel.Workbooks.Add (Type.Missing );
???????????????????????????????? Excel.Worksheet sheet=(Excel.Worksheet)excel.ActiveSheet;
???????????????????????????????? for(int i=0;i<col;i++)
???????????????????????????????????????? sheet.Cells [1,i+1]=ds.Tables [0].Columns.ToString ();
???????????????????????????????? for(int i=0;i<row;i++)
???????????????????????????????? {
???????????????????????????????????????? Application.DoEvents ();
???????????????????????????????????????? for(int j=0;j<col;j++)
???????????????????????????????????????? {
???????????????????????????????????????????????? sheet.Cells [i+2,j+1]="'"+ds.Tables [0].Rows [j].ToString ();
???????????????????????????????????????? }
???????????????????????????????????????? pb.Value ++;
???????????????????????????????? }
???????????????????????????????? excel.Save (ExcelPath);
???????????????????????????????? excel.Quit ();
???????????????????????? }
???????????????????????? catch(System.Exception ex){MessageBox.Show (ex.Message );excel.Quit ();return false;}
???????????????????????? GC.Collect ();
???????????????????????? return true;
???????????????? }
???????? }

總結

以上是生活随笔為你收集整理的转---SQL与EXCEL交互(导出/导入)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久欧洲 | 人乳videos巨大吃奶 | 玩偶游戏在线观看免费 | 91精品国产综合久久久密臀九色 | 麻豆成人在线视频 | 国产精品宾馆在线精品酒店 | 日日综合网 | 丁香八月婷婷 | 黄色片在哪看 | 中文日韩字幕 | 国产精品久久久久不卡 | 日韩爱爱网 | 国产探花精品在线 | 久久久精品国产免费爽爽爽 | 一区二区三区欧美 | 初尝黑人巨炮波多野结衣 | 国产欧美一区二区三区白浆喷水 | 少女情窦初开的第4集在线观看 | 成人在线观看视频网站 | 婷婷精品视频 | 国产精品乱码久久久久久 | 在线欧美色 | 在线观看欧美一区二区三区 | 中文字幕免费在线看线人动作大片 | 日韩av一区二区三区四区 | youjizz欧美| 麻豆传谋在线观看免费mv | 亚洲午夜影视 | 一区二区在线观看免费 | 男阳茎进女阳道视频大全 | 国产三级精品在线观看 | 欧美激情国产精品免费 | 日本午夜视频在线观看 | www.99爱| 久久久久久久久久av | 日韩久久久 | 美女视频黄色免费 | 西西午夜视频 | 欧美黑人性xxx | 少妇一级1淫片 | 久久精品视频中文字幕 | 成人黄色短视频在线观看 | 日韩欧美h | 午夜久久久精品 | 国产精品欧美一区二区三区 | 久久亚洲AV无码专区成人国产 | 日韩欧美中文字幕一区二区三区 | av一区二区在线播放 | 91精品观看 | 国产美女一区 | 毛片在线视频 | 欧美色视频在线 | 国产熟妇搡bbbb搡bbbb搡 | 国内一区二区视频 | 国产成人无码精品久久久电影 | 99久久婷婷国产综合精品青牛牛 | 国产情侣酒店自拍 | 风韵多水的老熟妇 | 黄色一级片av | 推特裸体gay猛交gay | 国产极品粉嫩 | 三级精品视频 | 男人插女人视频网站 | 四虎成人在线视频 | 男人av资源网 | 户外少妇对白啪啪野战 | 波多野结衣av在线播放 | 日韩一区二区视频在线观看 | 永久免费未满蜜桃 | 成人美女毛片 | 久久九色 | 欧美一区二区在线观看 | 桃色av网站 | 香蕉视频网页版 | 欧洲女女同性videoso | 99精品在线视频观看 | 91福利在线观看视频 | 免费三级网 | 久久久久久久毛片 | 91网站在线免费观看 | 久久久久久久久艹 | 青青视频免费在线观看 | 九九热超碰 | 国产一区二区黄色 | 久久人人人 | 丝袜福利视频 | 天堂亚洲精品 | 狠狠干性视频 | 麻豆成人免费视频 | 久久精品h| 亚洲av无码日韩精品影片 | 色老头在线观看 | 午夜黄色 | 色婷婷狠狠 | 日韩综合久久 | 久久久一级片 | 免费在线观看av网站 | 久久久7777 | 精品91久久久 |