色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術(shù)文章
文章詳情頁

如何實現(xiàn)將Excel表(含多張數(shù)據(jù)庫表)導(dǎo)入數(shù)據(jù)庫(SQLServer)

瀏覽:106日期:2022-08-03 16:19:04

前幾天,一直在網(wǎng)上搜索資料,想實現(xiàn)這個功能,都沒找到我想要的結(jié)果,最后只要自己想辦法實現(xiàn)了害怕忘記,把它貼出來,以便以后使用,也給需要這個功能的人提供點思路:大體思路是:將EXCEL的數(shù)據(jù)提出放在數(shù)據(jù)集中,在過循環(huán)將主表數(shù)據(jù)插入,在通過循環(huán)將從表插入:代碼如下:

private void button1_Click(object sender, System.EventArgs e){//選擇文件 ofdSelectExcel.Filter = 'Excel Files(*.xls)|*.xls'; ofdSelectExcel.RestoreDirectory = true; if( ofdSelectExcel.ShowDialog() == DialogResult.OK ) {if ( ofdSelectExcel.FileName.Trim().Length == 0){ MessageBox.Show(this,'Please select a excel file first!'); return;}else{ ImportExcelToSqlServer(ofdSelectExcel.FileName.Trim());} }}

********************************************************提取數(shù)據(jù)public; void ImportExcelToSqlServer(string fileName){if (fileName == null){ throw new ArgumentNullException('filename string is null!');}

if (fileName.Length == 0){ throw new ArgumentException('filename string is empty!');}

string oleDBConnString = String.Empty;oleDBConnString = 'Provider=Microsoft.Jet.OLEDB.4.0;';oleDBConnString += 'Data Source=';oleDBConnString += fileName;oleDBConnString += ';Extended Properties=Excel 8.0;';

OleDbConnection oleDBConn = null;OleDbDataAdapter oleAdMaster = null;DataTable m_tableName=new DataTable();;DataSet ds=new DataSet();try{ oleDBConn = new OleDbConnection(oleDBConnString); oleDBConn.Open(); m_tableName=oleDBConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null); if (m_tableName != null && m_tableName.Rows.Count > 0) {

m_tableName.TableName =m_tableName.Rows[0]['TABLE_NAME'].ToString();

} string sqlMaster; sqlMaster=' SELECT *; FROM ['+m_tableName+']'; oleAdMaster=new OleDbDataAdapter(sqlMaster,oleDBConn); oleAdMaster.Fill(ds,'m_tableName'); MailRebateManager manger=new MailRebateManager(); bool isSucess=manger.AddExceLGmailRebate(ds.Tables['m_tableName'],ApplicationVariable.HomeCompanyID); if(isSucess) { MessageBox.Show('Manipulate Succs!'); } else { MessageBox.Show('Manipulate Failed'); }}catch(Exception ex){ MessageBox.Show(ex.Message); SimpleLogger.Log(ex); try {

} catch (OleDbException e) { SimpleLogger.Log(e); MessageBox.Show('An exception of type ' + e.GetType() +'); }}

}*****************************************將數(shù)據(jù)進行處理分別插入主表和從表public bool AddExceLGmailRebate(DataTable tb,string homeCompanyID){bool ret=false;SqlConnection con=null; DataTable table=new DataTable();table=tb; string sConn = PublicManager.GetDBConnectionString(homeCompanyID);con=new SqlConnection();con.ConnectionString=sConn; SqlTransaction tran=null;SqlCommand com=null;SqlCommand comm=null; try{con.Open();tran = con.BeginTransaction(); if (table != null && table.Rows.Count > 0){ for(int i=1;i<table.Rows.Count;i++){ string m_PromoCode=Convert.ToString(table.Rows[i][0]);if(m_PromoCode==''){ m_PromoCode=Convert.ToString(table.Rows[i-1][0]);}if(m_PromoCode.Length>50 ){ m_PromoCode=m_PromoCode.Substring(0,50);}

string m_ItemDescription=Convert.ToString(table.DefaultView[i][1]);if(m_ItemDescription.IndexOf('(')>0){int num=m_ItemDescription.IndexOf('(');m_ItemDescription=m_ItemDescription.Substring(0,num);if(m_ItemDescription.Length>50){ m_ItemDescription=m_ItemDescription.Substring(0,50);} }if(m_ItemDescription.Length>50){ m_ItemDescription=m_ItemDescription.Substring(0,50);}

string begin=Convert.ToString(table.DefaultView[i][2]); string m_BeginPromoPeriodDate; string m_EndPromoPeriodEndDate; if(begin=='') { continue; } else { string beginTime=begin.Substring(0,8); beginTime=beginTime.Replace('/','-'); m_BeginPromoPeriodDate=beginTime; string endTime=begin.Substring(begin.Length-8); endTime=endTime.Replace('/','-'); m_EndPromoPeriodEndDate=endTime; }

string m_RebateAmountStr=Convert.ToString(table.DefaultView[i][3]); if(m_RebateAmountStr.Length >9) { m_RebateAmountStr=m_RebateAmountStr.Substring(0,9); } decimal m_RebateAmount; if(m_RebateAmountStr=='') { m_RebateAmount=0; } else { m_RebateAmount= Convert.ToDecimal(m_RebateAmountStr); }

string m_TotalSoldStr=Convert.ToString(table.DefaultView[i][7]);if(m_TotalSoldStr.Length >4){ m_TotalSoldStr=m_TotalSoldStr.Substring(0,4);} int m_TotalSold; if(m_TotalSoldStr=='') { m_TotalSold=0; } else { m_TotalSold=Convert.ToInt32(m_TotalSoldStr); }

string m_RebateReserveStr=Convert.ToString(table.DefaultView[i][8]); if(m_RebateReserveStr.Length>9) { m_RebateReserveStr=m_RebateReserveStr.Substring(0,9); } decimal m_RebateReserve; if(m_RebateReserveStr=='') { m_RebateReserve=0; } else { m_RebateReserve=Convert.ToDecimal(m_RebateReserveStr); }

string m_RedeemedStr=Convert.ToString(table.DefaultView[i][17]); if(m_RedeemedStr.Length >8) { m_RedeemedStr=m_RedeemedStr.Substring(0,8); } decimal m_Redeemed; if(m_RedeemedStr=='') { m_Redeemed=0; } else { m_Redeemed=Convert.ToDecimal(m_RedeemedStr); } string m_PromoItem=Convert.ToString(table.DefaultView[i][23]); if(m_PromoItem.Length >50) { m_PromoItem=m_PromoItem.Substring(0,50); }

DateTime m_InDate; m_InDate=DateTime.Now; string m_sqlMaster='INSERT INTO act.dbo.Newegg_GMailRebate(PromoCode,PromoItem,RebateAmount,ItemDescription,BeginPromoPeriodDate,EndPromoPeriodEndDate,PostMaskDate,TotalSold,RebateReserve,Redeemed,InDate)VALUES(''+m_PromoCode+'',''+m_PromoItem+'',''+m_RebateAmount+'',''+m_ItemDescription+'',''+m_BeginPromoPeriodDate+'',''+m_EndPromoPeriodEndDate+'',''+m_InDate+'',''+m_TotalSold+'',''+m_RebateReserve+'',''+m_Redeemed+'',''+m_InDate+'')'; comm=new SqlCommand(m_sqlMaster,con); comm.Transaction =tran; comm.ExecuteNonQuery (); comm.Dispose(); } for(int i=1;i<table.Rows.Count;i++) { string m_PromoCode=Convert.ToString(table.Rows[i][0]); if(m_PromoCode=='') { continue; } int; m_PromoCodeTransactionID=GetMasterTransactionID(m_PromoCode,homeCompanyID); string m_InvoiceNumber=Convert.ToString(table.Rows[i][4]); if(m_InvoiceNumber.Length >30) { m_InvoiceNumber=m_InvoiceNumber.Substring(0,30); } if(m_InvoiceNumber=='') { m_InvoiceNumber='0'; }

string m_InvoiceDate=Convert.ToString(table.DefaultView[i][6]); if(m_InvoiceDate=='') { DateTime m_InDate; m_InDate=DateTime.Now; m_InvoiceDate=Convert.ToString(m_InDate); }

string m_serialNumberStr=Convert.ToString(table.Rows[i][5]); if(m_serialNumberStr.Length >4) { m_serialNumberStr=m_serialNumberStr.Substring(0,4); } if(m_serialNumberStr=='') { m_serialNumberStr='0'; } int; m_serialNumber=Convert.ToInt32(m_serialNumberStr); string m_TotalValidStr=Convert.ToString( table.DefaultView[i][9]); if(m_TotalValidStr.Length >4) { m_TotalValidStr=m_TotalValidStr.Substring(0,4); } if(m_TotalValidStr=='') { m_TotalValidStr='0'; } int m_TotalValid=Convert.ToInt32 (m_TotalValidStr);

string m_TotalInValidStr=Convert.ToString( table.DefaultView[i][10]); if(m_TotalInValidStr.Length >4) { m_TotalInValidStr=m_TotalInValidStr.Substring(0,4); } if(m_TotalInValidStr=='') { m_TotalInValidStr='0'; } int m_TotalInValid=Convert.ToInt32(m_TotalInValidStr);

string m_ProcessFeeStr=Convert.ToString(table.DefaultView[i][13]); if(m_ProcessFeeStr.Length >9) { m_ProcessFeeStr=m_ProcessFeeStr.Substring(0,9); } if(m_ProcessFeeStr=='') { m_ProcessFeeStr='0'; } decimal m_ProcessFee=Convert.ToDecimal(m_ProcessFeeStr);

string m_sqlDetails='INSERT INTO act.dbo.Newegg_GMailExcelMaster(PromoCodeTransactionID,InvoiceNumber,InvoiceDate,SerialNumber,TotalValid,TotalInvalid,ProcessFee)VALUES(''+m_PromoCodeTransactionID+'',''+m_InvoiceNumber+'',''+m_InvoiceDate+'',''+m_serialNumber+'',''+m_TotalValid+'',''+m_TotalInValid+'',''+m_ProcessFee+'')'; com=new SqlCommand(m_sqlDetails,con); com.CommandTimeout=60; com.Transaction =tran; com.ExecuteNonQuery(); com.Dispose(); m++; } tran.Commit();

ret=true;

} } catch(Exception ex) { try { tran.Rollback(); } catch (SqlException e) { if (tran.Connection != null) { MessageBox.Show('An exception of type ' + e.GetType() +'); } } MessageBox.Show('Error come up row number:'+m.ToString()); MessageBox.Show('Error details:'+ex.Message); SimpleLogger.Log(ex); ret=false; } finally { con.Close(); con.Dispose(); } return ret;

}

出處:成都DotNet俱樂部專欄(kim)

標(biāo)簽: excel
主站蜘蛛池模板: 欧美精品黄页免费高清在线 | 亚洲精品一区二区手机在线 | 欧美黄视频在线观看 | 网站在线看 | 久久久久久一品道精品免费看 | 欧美精品一区二区三区免费观看 | 欧美另类孕交免费观看 | 在线成人播放毛片 | 国产一级aa大片毛片 | 亚洲精品高清视频 | 日韩毛片一级 | 国产在线a | 亚洲狠狠ady亚洲精品大秀 | 亚洲成a人v在线观看 | 亚洲不卡视频在线观看 | 午夜爱爱毛片xxxx视频免费看 | 国产孕妇做受视频在线观看 | 一级视频在线观看 | 美女张开双腿让男人桶视频免费 | 国产一区亚洲二区 | 国产真实孩交 | 国产日韩欧美精品 | 女人张开腿让男人操 | 精品久久久久久久久中文字幕 | 欧美日韩在线看 | 成人性版蝴蝶影院污 | 成人禁在线观看网站 | 亚洲欧洲日产v特级毛片 | 特级淫片国产免费高清视频 | 日本国产免费一区不卡在线 | 日本乱人伦片中文字幕三区 | 久久国产美女免费观看精品 | 欧美日韩视频一区二区 | 成人交性视频免费看 | 亚洲综合a| 久久国产欧美 | 亚州精品视频 | 91国高清视频 | 久久99久久99精品 | 5x社区直接进入一区二区三区 | 亚洲精品国产美女在线观看 |