电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

如何實現將Excel表(含多張數據庫表)導入數據庫(SQLServer)

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

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

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());} }}

********************************************************提取數據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() +'); }}

}*****************************************將數據進行處理分別插入主表和從表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)

標簽: excel
主站蜘蛛池模板: 轻型地埋电缆故障测试仪,频响法绕组变形测试仪,静荷式卧式拉力试验机-扬州苏电 | 刺绳_刀片刺网_刺丝滚笼_不锈钢刺绳生产厂家_安平县浩荣金属丝网制品有限公司-安平县浩荣金属丝网制品有限公司 | 膏方加工_丸剂贴牌_膏滋代加工_湖北康瑞生物科技有限公司 | LCD3D打印机|教育|桌面|光固化|FDM3D打印机|3D打印设备-广州造维科技有限公司 | 骨龄仪_骨龄检测仪_儿童骨龄测试仪_品牌生产厂家【品源医疗】 | 精密冲床,高速冲床等冲压设备生产商-常州晋志德压力机厂 | 防腐木批发价格_深圳_惠州_东莞防腐木厂家_森源(深圳)防腐木有限公司 | 黑龙江京科脑康医院-哈尔滨精神病医院哪家好_哈尔滨精神科医院排名_黑龙江精神心理病专科医院 | 北京网站建设-企业网站建设-建站公司-做网站-北京良言多米网络公司 | jrs高清nba(无插件)直播-jrs直播低调看直播-jrs直播nba-jrs直播 上海地磅秤|电子地上衡|防爆地磅_上海地磅秤厂家–越衡称重 | 船用锚链|专业锚链生产厂家|安徽亚太锚链制造有限公司 | 东莞螺杆空压机_永磁变频空压机_节能空压机_空压机工厂批发_深圳螺杆空压机_广州螺杆空压机_东莞空压机_空压机批发_东莞空压机工厂批发_东莞市文颖设备科技有限公司 | 杰福伦_磁致伸缩位移传感器_线性位移传感器-意大利GEFRAN杰福伦-河南赉威液压科技有限公司 | 西安标准厂房_陕西工业厂房_西咸新区独栋厂房_长信科技产业园官方网站 | 冷轧机|两肋冷轧机|扁钢冷轧机|倒立式拉丝机|钢筋拔丝机|收线机-巩义市华瑞重工机械制造有限公司 | 冷热冲击试验箱_温度冲击试验箱价格_冷热冲击箱排名_林频厂家 | 【北京写字楼出租_写字楼租赁_办公室出租网/出售】-远行地产官网 | 吉祥新世纪铝塑板_生产铝塑板厂家_铝塑板生产厂家_临沂市兴达铝塑装饰材料有限公司 | 钛合金标准件-钛合金螺丝-钛管件-钛合金棒-钛合金板-钛合金锻件-宝鸡远航钛业有限公司 | 24位ADC|8位MCU-芯易德科技有限公司 | 送料机_高速冲床送料机_NC伺服滚轮送料机厂家-东莞市久谐自动化设备有限公司 | 电磁流量计_智能防腐防爆管道式计量表-金湖凯铭仪表有限公司 | 拖鞋定制厂家-品牌拖鞋代加工厂-振扬实业中国高端拖鞋大型制造商 | 衢州装饰公司|装潢公司|办公楼装修|排屋装修|别墅装修-衢州佳盛装饰 | 吉林污水处理公司,长春工业污水处理设备,净水设备-长春易洁环保科技有限公司 | 岩棉切条机厂家_玻璃棉裁条机_水泥基保温板设备-廊坊鹏恒机械 | 有声小说,听书,听小说资源库-听世界网 | 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 聚合氯化铝_喷雾聚氯化铝_聚合氯化铝铁厂家_郑州亿升化工有限公司 | 压接机|高精度压接机|手动压接机|昆明可耐特科技有限公司[官网] 胶泥瓷砖胶,轻质粉刷石膏,嵌缝石膏厂家,腻子粉批发,永康家德兴,永康市家德兴建材厂 | OpenI 启智 新一代人工智能开源开放平台 | 仿清水混凝土_清水混凝土装修_施工_修饰_保护剂_修补_清水混凝土修复-德州忠岭建筑装饰工程 | 代办建筑资质升级-建筑资质延期就找上海国信启航 | 菏泽知彼网络科技有限公司 | 快速门厂家-快速卷帘门-工业快速门-硬质快速门-西朗门业 | 新密高铝耐火砖,轻质保温砖价格,浇注料厂家直销-郑州荣盛窑炉耐火材料有限公司 | 采暖炉_取暖炉_生物质颗粒锅炉_颗粒壁炉_厂家加盟批发_烟台蓝澳采暖设备有限公司 | 磁力加热搅拌器-多工位|大功率|数显恒温磁力搅拌器-司乐仪器官网 | 设定时间记录电子秤-自动累计储存电子秤-昆山巨天仪器设备有限公司 | 运动木地板厂家_体育木地板安装_篮球木地板选购_实木运动地板价格 | 空心明胶胶囊|植物胶囊|清真胶囊|浙江绿键胶囊有限公司欢迎您! | 【德信自动化】点胶机_全自动点胶机_自动点胶机厂家_塑料热压机_自动螺丝机-深圳市德信自动化设备有限公司 |