Beberapa hari yang lalu saya mencari informasi di Internet untuk mengimplementasikan fungsi ini, tetapi saya belum menemukan hasil yang saya inginkan. Akhirnya saya hanya ingin mencari cara untuk mengimplementasikannya. Saya takut lupa, jadi saya posting untuk digunakan di masa mendatang dan juga untuk orang yang membutuhkan fungsi ini. Berikan beberapa ide:
Ide umumnya adalah: ekstrak data EXCEL ke dalam kumpulan data, masukkan data tabel utama melalui loop, lalu masukkan data dari tabel melalui loop:
Kodenya adalah sebagai berikut:
private void button1_Click(pengirim objek, System.EventArgs e)
{
//pilih berkas
ofdSelectExcel.Filter = "File Excel(*.xls)|*.xls";
ofdSelectExcel.RestoreDirectory = benar;
if( ofdSelectExcel.ShowDialog() == DialogResult.OK )
{
jika (ofdSelectExcel.NamaFile.Trim().Panjang == 0)
{
MessageBox.Show(ini,"Silakan pilih file excel terlebih dahulu!");
kembali;
}
kalau tidak
{
ImportExcelToSqlServer(ofdSelectExcel.FileName.Trim());
}
}
}
******************************************************* *******
Ekstrak data
kekosongan publik ImportExcelToSqlServer(string nama file)
{
jika (Namafile == null)
{
throw new ArgumentNullException("string nama file adalah null!");
}
if (Namafile.Panjangnya == 0)
{
throw new ArgumentException("string nama file kosong!");
}
string oleDBConnString = String.Kosong;
oleDBConnString = "Penyedia=Microsoft.Jet.OLEDB.4.0;";
oleDBConnString += "Sumber Data=";
oleDBConnString += Nama file;
oleDBConnString += ";Properti yang Diperluas=Excel 8.0;";
OleDbConnection oleDBConn = null;
OleDbDataAdapter oleAdMaster = null;
DataTable m_tableName=DataTablebaru();;
Kumpulan Data ds=Set Data baru();
mencoba
{
oleDBConn = OleDbConnection baru(oleDBConnString);
oleDBConn.Buka();
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=" PILIH * DARI ["+m_tableName+"]";
oleAdMaster=baru OleDbDataAdapter(sqlMaster,oleDBConn);
oleAdMaster.Fill(ds,"m_tableName");
Manajer MailRebateManager=MailRebateManager baru();
bool isSucess=manger.AddExceLGmailRebate(ds.Tables["m_tableName"],ApplicationVariable.HomeCompanyID);
jika (berhasil)
{
MessageBox.Show("Memanipulasi Hasil!");
}
kalau tidak
{
MessageBox.Show("Manipulasi Gagal");
}
}
menangkap (Pengecualian ex)
{
MessageBox.Show(mis.Pesan);
SimpleLogger.Log(mis);
mencoba
{
}
menangkap (OleDbException e)
{
SimpleLogger.Log(e);
MessageBox.Show("Pengecualian tipe " + e.GetType() +");
}
}
}
*******************************************
Proses data dan masukkan masing-masing ke dalam tabel utama dan tabel budak
bool publik AddExceLGmailRebate(DataTable tb,string homeCompanyID)
{
bool ret=salah;
SqlConnection con=null;
Tabel DataTable=DataTable baru();
tabel=tb;
string sConn = PublicManager.GetDBConnectionString(homeCompanyID);
con=new SqlConnection();
con.ConnectionString=sConn;
SqlTransaksi tran=null;
SqlCommand com=null;
Perintah SqlCommand=null;
mencoba
{
con.Open();
tran = con.BeginTransaction();
if (tabel != null && tabel.Baris.Jumlah > 0)
{
for(int i=1;i<tabel.Baris.Hitungan;i++)
{
string m_PromoCode=Convert.ToString(tabel.Rows[i][0]);
jika(m_KodePromo=="")
{
m_PromoCode=Convert.ToString(tabel.Rows[i-1][0]);
}
if(m_PromoCode.Panjang>50)
{
m_PromoCode=m_PromoCode.Substring(0,50);
}
string m_ItemDescription=Convert.ToString(tabel.DefaultView[i][1]);
if(m_ItemDescription.IndexOf("(")>0)
{
int angka=m_ItemDescription.IndexOf("(");
m_ItemDescription=m_ItemDescription.Substring(0,angka);
if(m_ItemDescription.Panjang>50)
{
m_ItemDescription=m_ItemDescription.Substring(0,50);
}
}
if(m_ItemDescription.Panjang>50)
{
m_ItemDescription=m_ItemDescription.Substring(0,50);
}
string mulai=Konversi.ToString(tabel.DefaultView[i][2]);
string m_BeginPromoPeriodDate;
string m_EndPromoPeriodEndDate;
jika(mulai=="")
{
melanjutkan;
}
kalau tidak
{
string mulaiWaktu=mulai.Substring(0,8);
beginTime=beginTime.Replace("/","-");
m_BeginPromoPeriodDate=waktu mulai;
string endTime=mulai.Substring(mulai.Panjang-8);
endTime=endTime.Replace("/","-");
m_EndPromoPeriodEndDate=Waktu berakhir;
}
string m_RebateAmountStr=Convert.ToString(tabel.DefaultView[i][3]);
if(m_RebateAmountStr.Panjang >9)
{
m_RebateAmountStr=m_RebateAmountStr.Substring(0,9);
}
desimal m_RebateAmount;
jika(m_RebateAmountStr=="")
{
m_Jumlah Rabat=0;
}
kalau tidak
{
m_RebateAmount= Konversi.KeDesimal(m_RebateAmountStr);
}
string m_TotalSoldStr=Convert.ToString(tabel.DefaultView[i][7]);
if(m_TotalSoldStr.Panjang >4)
{
m_TotalSoldStr=m_TotalSoldStr.Substring(0,4);
}
int m_Total Terjual;
jika(m_TotalSoldStr=="")
{
m_Total Terjual=0;
}
kalau tidak
{
m_TotalSold=Konversi.ToInt32(m_TotalSoldStr);
}
string m_RebateReserveStr=Convert.ToString(tabel.DefaultView[i][8]);
if(m_RebateReserveStr.Panjang>9)
{
m_RebateReserveStr=m_RebateReserveStr.Substring(0,9);
}
desimal m_RebateReserve;
jika(m_RebateReserveStr=="")
{
m_RebateReserve=0;
}
kalau tidak
{
m_RebateReserve=Konversi.ToDecimal(m_RebateReserveStr);
}
string m_RedeemedStr=Convert.ToString(tabel.DefaultView[i][17]);
if(m_RedeemedStr.Panjang >8)
{
m_RedeemedStr=m_RedeemedStr.Substring(0,8);
}
desimal m_Ditebus;
jika(m_RedeemedStr=="")
{
m_Ditebus=0;
}
kalau tidak
{
m_Redeemed=Konversi.ToDecimal(m_RedeemedStr);
}
string m_PromoItem=Convert.ToString(tabel.DefaultView[i][23]);
if(m_PromoItem.Panjang >50)
{
m_PromoItem=m_PromoItem.Substring(0,50);
}
TanggalWaktu m_InDate;
m_InDate=DateTime.Sekarang;
string m_sqlMaster="MASUKKAN KE dalam act.dbo.Newegg_GMailRebate(PromoCode,PromoItem,RebateAmount,ItemDescription,BeginPromoPeriodDate,
EndPromoPeriodEndDate,PostMaskDate,TotalSold,RebateReserve,Ditebus,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.Transaksi =tran;
comm.ExecuteNonQuery();
com.Buang();
}
for(int i=1;i<tabel.Baris.Hitungan;i++)
{
string m_PromoCode=Convert.ToString(tabel.Rows[i][0]);
jika(m_KodePromo=="")
{
melanjutkan;
}
int m_PromoCodeTransactionID=GetMasterTransactionID(m_PromoCode,homeCompanyID);
string m_InvoiceNumber=Convert.ToString(tabel.Rows[i][4]);
if(m_Nomor Faktur.Panjang >30)
{
m_Nomor Faktur=m_Nomor Faktur.Substring(0,30);
}
if(m_Nomor Faktur=="")
{
m_Nomor Faktur="0";
}
string m_InvoiceDate=Convert.ToString(tabel.DefaultView[i][6]);
jika(m_Tanggal Faktur=="")
{
TanggalWaktu m_InDate;
m_InDate=DateTime.Sekarang;
m_InvoiceDate=Konversi.ToString(m_InDate);
}
string m_serialNumberStr=Convert.ToString(tabel.Rows[i][5]);
if(m_serialNumberStr.Panjang >4)
{
m_serialNumberStr=m_serialNumberStr.Substring(0,4);
}
jika(m_serialNumberStr=="")
{
m_serialNumberStr="0";
}
int m_serialNumber=Konversi.ToInt32(m_serialNumberStr);
string m_TotalValidStr=Konversi.ToString( tabel.DefaultView[i][9]);
if(m_TotalValidStr.Panjang >4)
{
m_TotalValidStr=m_TotalValidStr.Substring(0,4);
}
jika(m_TotalValidStr=="")
{
m_TotalValidStr="0";
}
int m_TotalValid=Konversi.ToInt32 (m_TotalValidStr);
string m_TotalInValidStr=Konversi.ToString( tabel.DefaultView[i][10]);
if(m_TotalInValidStr.Panjang >4)
{
m_TotalInValidStr=m_TotalInValidStr.Substring(0,4);
}
jika(m_TotalInValidStr=="")
{
m_TotalInValidStr="0";
}
int m_TotalInValid=Konversi.ToInt32(m_TotalInValidStr);
string m_ProcessFeeStr=Convert.ToString(tabel.DefaultView[i][13]);
if(m_ProcessFeeStr.Panjang >9)
{
m_ProcessFeeStr=m_ProcessFeeStr.Substring(0,9);
}
jika(m_ProcessFeeStr=="")
{
m_ProcessFeeStr="0";
}
desimal m_ProcessFee=Convert.ToDecimal(m_ProcessFeeStr);
string m_sqlDetails="MASUKKAN KE dalam act.dbo.Newegg_GMailExcelMaster(PromoCodeTransactionID,Nomor Faktur,Tanggal Faktur,Nomor Seri,
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.Transaksi =tran;
com.ExecuteNonQuery();
com.Buang();
m++;
}
tran.Komit();
ret=true
;
}
menangkap (Pengecualian ex)
{
mencoba
{
tran.Rollback();
}
menangkap (SqlException e)
{
if (tran.Koneksi!= null)
{
MessageBox.Show("Pengecualian tipe " + e.GetType() +");
}
}
MessageBox.Show("Kesalahan muncul nomor baris:"+m.ToString());
MessageBox.Show("Rincian kesalahan:"+ex.Message);
SimpleLogger.Log(mis);
ret=salah;
}
Akhirnya
{
con.Tutup();
con.Buang();
}
return ret;
}
Sumber: Kolom Klub DotNet Chengdu (kim)