实现将Excel表导入数据库(SQLServer)

大体思路是:将EXCEL的数据提出放在数据集中,在过循环将主表数据插入,在通过循环将从表插入:

代码如下:

ContractedBlock.gif ExpandedBlockStart.gif Code
  1private void button1_Click(object sender, System.EventArgs e)
  2ExpandedBlockStart.gifContractedBlock.gif{
  3//选择文件
  4  ofdSelectExcel.Filter = "Excel Files(*.xls)|*.xls";
  5  ofdSelectExcel.RestoreDirectory = true;
  6  if( ofdSelectExcel.ShowDialog() == DialogResult.OK )
  7ExpandedSubBlockStart.gifContractedSubBlock.gif  {
  8 if ( ofdSelectExcel.FileName.Trim().Length == 0)
  9ExpandedSubBlockStart.gifContractedSubBlock.gif {
 10   MessageBox.Show(this,"Please select a excel file first!");
 11   return;
 12 }

 13 else
 14ExpandedSubBlockStart.gifContractedSubBlock.gif {
 15  ImportExcelToSqlServer(ofdSelectExcel.FileName.Trim());
 16 }

 17       
 18 }

 19}

 20
 21********************************************************
 22提取数据
 23public  void ImportExcelToSqlServer(string fileName)
 24ExpandedBlockStart.gifContractedBlock.gif{
 25 if (fileName == null)
 26ExpandedSubBlockStart.gifContractedSubBlock.gif {
 27  throw new ArgumentNullException("filename string is null!");
 28 }

 29
 30 if (fileName.Length == 0)
 31ExpandedSubBlockStart.gifContractedSubBlock.gif {
 32  throw new ArgumentException("filename string is empty!");
 33 }

 34
 35 string oleDBConnString = String.Empty;
 36 oleDBConnString = "Provider=Microsoft.Jet.OLEDB.4.0;";
 37 oleDBConnString += "Data Source=";
 38 oleDBConnString += fileName;
 39 oleDBConnString += ";Extended Properties=Excel 8.0;";
 40
 41 
 42 OleDbConnection oleDBConn = null;
 43 OleDbDataAdapter oleAdMaster = null;
 44 DataTable m_tableName=new DataTable();;
 45 DataSet ds=new DataSet();
 46 try
 47ExpandedSubBlockStart.gifContractedSubBlock.gif {
 48    oleDBConn = new OleDbConnection(oleDBConnString);
 49    oleDBConn.Open();
 50    m_tableName=oleDBConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,null);
 51  
 52    if (m_tableName != null && m_tableName.Rows.Count > 0)
 53ExpandedSubBlockStart.gifContractedSubBlock.gif    {
 54
 55  m_tableName.TableName =m_tableName.Rows[0]["TABLE_NAME"].ToString();
 56
 57    }

 58  string sqlMaster;
 59  sqlMaster=" SELECT *  FROM ["+m_tableName+"]";
 60  oleAdMaster=new OleDbDataAdapter(sqlMaster,oleDBConn);
 61  oleAdMaster.Fill(ds,"m_tableName");
 62   
 63  MailRebateManager manger=new MailRebateManager();
 64  bool isSucess=manger.AddExceLGmailRebate(ds.Tables["m_tableName"],ApplicationVariable.HomeCompanyID);
 65  if(isSucess)
 66ExpandedSubBlockStart.gifContractedSubBlock.gif  {
 67   MessageBox.Show("Manipulate Succs!");
 68  }

 69  else
 70ExpandedSubBlockStart.gifContractedSubBlock.gif  {
 71    MessageBox.Show("Manipulate Failed");
 72  }

 73 }

 74 catch(Exception ex)
 75ExpandedSubBlockStart.gifContractedSubBlock.gif {
 76    MessageBox.Show(ex.Message);
 77    SimpleLogger.Log(ex);
 78try
 79ExpandedSubBlockStart.gifContractedSubBlock.gif  {
 80
 81  }

 82  catch (OleDbException e)
 83ExpandedSubBlockStart.gifContractedSubBlock.gif  {
 84   SimpleLogger.Log(e);
 85         MessageBox.Show("An exception of type " + e.GetType() +");
 86  }

 87 }

 88
 89   
 90}

 91*****************************************
 92将数据进行处理分别插入主表和从表
 93public bool AddExceLGmailRebate(DataTable tb,string homeCompanyID)
 94ExpandedBlockStart.gifContractedBlock.gif{
 95bool ret=false;
 96SqlConnection con=null;
 97         
 98DataTable table=new DataTable();
 99table=tb;
100  
101string sConn = PublicManager.GetDBConnectionString(homeCompanyID);
102con=new SqlConnection();
103con.ConnectionString=sConn;
104  
105SqlTransaction tran=null;
106SqlCommand com=null;
107SqlCommand comm=null;
108 
109try
110ExpandedSubBlockStart.gifContractedSubBlock.gif{
111con.Open();
112tran = con.BeginTransaction();
113  
114 if (table != null && table.Rows.Count > 0)
115ExpandedSubBlockStart.gifContractedSubBlock.gif {
116    
117 for(int i=1;i<table.Rows.Count;i++)
118ExpandedSubBlockStart.gifContractedSubBlock.gif {
119     
120 string m_PromoCode=Convert.ToString(table.Rows[i][0]);
121 if(m_PromoCode=="")
122ExpandedSubBlockStart.gifContractedSubBlock.gif {
123  m_PromoCode=Convert.ToString(table.Rows[i-1][0]);
124 }

125 if(m_PromoCode.Length>50 )
126ExpandedSubBlockStart.gifContractedSubBlock.gif {
127  m_PromoCode=m_PromoCode.Substring(0,50);
128 }

129
130
131 string m_ItemDescription=Convert.ToString(table.DefaultView[i][1]);
132 if(m_ItemDescription.IndexOf("(")>0)
133ExpandedSubBlockStart.gifContractedSubBlock.gif {
134 int num=m_ItemDescription.IndexOf("(");
135 m_ItemDescription=m_ItemDescription.Substring(0,num);
136 if(m_ItemDescription.Length>50)
137ExpandedSubBlockStart.gifContractedSubBlock.gif {
138  m_ItemDescription=m_ItemDescription.Substring(0,50);
139 }

140      
141 }

142 if(m_ItemDescription.Length>50)
143ExpandedSubBlockStart.gifContractedSubBlock.gif {
144  m_ItemDescription=m_ItemDescription.Substring(0,50);
145 }

146
147
148  string begin=Convert.ToString(table.DefaultView[i][2]);
149  string m_BeginPromoPeriodDate;
150  string m_EndPromoPeriodEndDate;
151  if(begin=="")
152ExpandedSubBlockStart.gifContractedSubBlock.gif  {
153   continue;
154  }

155  else
156ExpandedSubBlockStart.gifContractedSubBlock.gif  {
157   string beginTime=begin.Substring(0,8);
158   beginTime=beginTime.Replace("/","-");
159   m_BeginPromoPeriodDate=beginTime;
160   string endTime=begin.Substring(begin.Length-8);
161   endTime=endTime.Replace("/","-");
162   m_EndPromoPeriodEndDate=endTime;
163  }

164
165
166  string m_RebateAmountStr=Convert.ToString(table.DefaultView[i][3]);
167  if(m_RebateAmountStr.Length >9)
168ExpandedSubBlockStart.gifContractedSubBlock.gif  {
169   m_RebateAmountStr=m_RebateAmountStr.Substring(0,9);
170  }

171  decimal m_RebateAmount;
172  if(m_RebateAmountStr=="")
173ExpandedSubBlockStart.gifContractedSubBlock.gif  {
174 m_RebateAmount=0;
175  }

176  else
177ExpandedSubBlockStart.gifContractedSubBlock.gif  {
178   m_RebateAmount= Convert.ToDecimal(m_RebateAmountStr);
179  }

180
181
182 string m_TotalSoldStr=Convert.ToString(table.DefaultView[i][7]);
183 if(m_TotalSoldStr.Length >4)
184ExpandedSubBlockStart.gifContractedSubBlock.gif {
185  m_TotalSoldStr=m_TotalSoldStr.Substring(0,4);
186 }

187  int m_TotalSold;
188  if(m_TotalSoldStr=="")
189ExpandedSubBlockStart.gifContractedSubBlock.gif  {
190   m_TotalSold=0;
191  }

192  else
193ExpandedSubBlockStart.gifContractedSubBlock.gif  {
194   m_TotalSold=Convert.ToInt32(m_TotalSoldStr);
195  }

196
197  string m_RebateReserveStr=Convert.ToString(table.DefaultView[i][8]);
198  if(m_RebateReserveStr.Length>9)
199ExpandedSubBlockStart.gifContractedSubBlock.gif  {
200   m_RebateReserveStr=m_RebateReserveStr.Substring(0,9);
201  }

202  decimal m_RebateReserve;
203  if(m_RebateReserveStr=="")
204ExpandedSubBlockStart.gifContractedSubBlock.gif  {
205          m_RebateReserve=0;
206  }

207  else
208ExpandedSubBlockStart.gifContractedSubBlock.gif  {
209   m_RebateReserve=Convert.ToDecimal(m_RebateReserveStr);
210         
211  }

212
213  string m_RedeemedStr=Convert.ToString(table.DefaultView[i][17]);
214  if(m_RedeemedStr.Length >8)
215ExpandedSubBlockStart.gifContractedSubBlock.gif  {
216   m_RedeemedStr=m_RedeemedStr.Substring(0,8);
217  }

218  decimal m_Redeemed;
219  if(m_RedeemedStr=="")
220ExpandedSubBlockStart.gifContractedSubBlock.gif  {
221   m_Redeemed=0;
222  }

223  else
224ExpandedSubBlockStart.gifContractedSubBlock.gif  {
225   m_Redeemed=Convert.ToDecimal(m_RedeemedStr);
226  }

227  string m_PromoItem=Convert.ToString(table.DefaultView[i][23]);
228  if(m_PromoItem.Length >50)
229ExpandedSubBlockStart.gifContractedSubBlock.gif  {
230   m_PromoItem=m_PromoItem.Substring(0,50);
231  }

232
233  DateTime m_InDate;
234  m_InDate=DateTime.Now;
235      
236  string m_sqlMaster="INSERT INTO act.dbo.Newegg_GMailRebate(PromoCode,PromoItem,RebateAmount,ItemDescription,BeginPromoPeriodDate,
237EndPromoPeriodEndDate,PostMaskDate,TotalSold,RebateReserve,Redeemed,InDate)VALUES(’"+m_PromoCode+"’,’"+m_PromoItem+"’,’"+m_RebateAmount+"’,
238"+m_ItemDescription+"’,’"+m_BeginPromoPeriodDate+"’,’"+m_EndPromoPeriodEndDate+"’,
239"+m_InDate+"’,’"+m_TotalSold+"’,’"+m_RebateReserve+"’,’"+m_Redeemed+"’,’"+m_InDate+"’)";
240  comm=new SqlCommand(m_sqlMaster,con);
241  comm.Transaction =tran;
242  comm.ExecuteNonQuery ();
243  comm.Dispose();
244     
245  }

246     
247    
248  for(int i=1;i<table.Rows.Count;i++)
249ExpandedSubBlockStart.gifContractedSubBlock.gif  {
250     
251   string m_PromoCode=Convert.ToString(table.Rows[i][0]);
252   if(m_PromoCode=="")
253ExpandedSubBlockStart.gifContractedSubBlock.gif   {
254 continue;
255   }

256   int  m_PromoCodeTransactionID=GetMasterTransactionID(m_PromoCode,homeCompanyID);
257     
258   string m_InvoiceNumber=Convert.ToString(table.Rows[i][4]);
259   if(m_InvoiceNumber.Length >30)
260ExpandedSubBlockStart.gifContractedSubBlock.gif   {
261   m_InvoiceNumber=m_InvoiceNumber.Substring(0,30);
262   }

263   if(m_InvoiceNumber=="")
264ExpandedSubBlockStart.gifContractedSubBlock.gif   {
265    m_InvoiceNumber="0";
266   }

267
268   string m_InvoiceDate=Convert.ToString(table.DefaultView[i][6]);
269   if(m_InvoiceDate=="")
270ExpandedSubBlockStart.gifContractedSubBlock.gif   {
271    DateTime m_InDate;
272    m_InDate=DateTime.Now;
273    m_InvoiceDate=Convert.ToString(m_InDate);
274   }

275
276   string m_serialNumberStr=Convert.ToString(table.Rows[i][5]);
277   if(m_serialNumberStr.Length >4)
278ExpandedSubBlockStart.gifContractedSubBlock.gif   {
279    m_serialNumberStr=m_serialNumberStr.Substring(0,4);
280   }

281   if(m_serialNumberStr=="")
282ExpandedSubBlockStart.gifContractedSubBlock.gif   {
283    m_serialNumberStr="0";
284   }

285   int  m_serialNumber=Convert.ToInt32(m_serialNumberStr);
286     
287     
288   string m_TotalValidStr=Convert.ToString( table.DefaultView[i][9]);
289   if(m_TotalValidStr.Length >4)
290ExpandedSubBlockStart.gifContractedSubBlock.gif   {
291    m_TotalValidStr=m_TotalValidStr.Substring(0,4);
292  
293                        }

294   if(m_TotalValidStr=="")
295ExpandedSubBlockStart.gifContractedSubBlock.gif   {
296    m_TotalValidStr="0";
297   }

298   int m_TotalValid=Convert.ToInt32 (m_TotalValidStr);
299
300
301   string m_TotalInValidStr=Convert.ToString( table.DefaultView[i][10]);
302   if(m_TotalInValidStr.Length >4)
303ExpandedSubBlockStart.gifContractedSubBlock.gif   {
304    m_TotalInValidStr=m_TotalInValidStr.Substring(0,4);
305   }

306   if(m_TotalInValidStr=="")
307ExpandedSubBlockStart.gifContractedSubBlock.gif   {
308    m_TotalInValidStr="0";
309   }

310   int m_TotalInValid=Convert.ToInt32(m_TotalInValidStr);
311     
312
313   string m_ProcessFeeStr=Convert.ToString(table.DefaultView[i][13]);
314   if(m_ProcessFeeStr.Length >9)
315ExpandedSubBlockStart.gifContractedSubBlock.gif   {
316    m_ProcessFeeStr=m_ProcessFeeStr.Substring(0,9);
317   }

318   if(m_ProcessFeeStr=="")
319ExpandedSubBlockStart.gifContractedSubBlock.gif   {
320    m_ProcessFeeStr="0";
321   }

322
323decimal m_ProcessFee=Convert.ToDecimal(m_ProcessFeeStr);
324
325
326   string m_sqlDetails="INSERT INTO act.dbo.Newegg_GMailExcelMaster(PromoCodeTransactionID,InvoiceNumber,InvoiceDate,SerialNumber,
327TotalValid,TotalInvalid,ProcessFee)VALUES(’"+m_PromoCodeTransactionID+"’,’"+m_InvoiceNumber+"’,’"+m_InvoiceDate+"’,
328"+m_serialNumber+"’,’"+m_TotalValid+"’,’"+m_TotalInValid+"’,’"+m_ProcessFee+"’)";
329   com=new SqlCommand(m_sqlDetails,con);
330   com.CommandTimeout=60;
331   com.Transaction =tran;
332   com.ExecuteNonQuery();
333   com.Dispose();
334   m++;
335   }

336   tran.Commit();
337
338   ret=true;
339
340  }

341  
342  }

343  catch(Exception ex)
344ExpandedSubBlockStart.gifContractedSubBlock.gif  {
345   
346  try
347ExpandedSubBlockStart.gifContractedSubBlock.gif  {
348   tran.Rollback();
349  }

350  catch (SqlException e)
351ExpandedSubBlockStart.gifContractedSubBlock.gif  {
352   if (tran.Connection != null)
353ExpandedSubBlockStart.gifContractedSubBlock.gif   {
354    MessageBox.Show("An exception of type " + e.GetType() +");
355   }

356   }

357   MessageBox.Show("Error come up row number:"+m.ToString());
358   MessageBox.Show("Error details:"+ex.Message);
359   SimpleLogger.Log(ex);
360   ret=false;
361  }

362  finally
363ExpandedSubBlockStart.gifContractedSubBlock.gif  {
364   con.Close();
365   con.Dispose();
366   
367  }

368  return ret;
369
370  }

371
372

 

转载于:https://www.cnblogs.com/KivenSun/articles/1434377.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值