的数据如何将excel表中的数据导入sql server 数据库
在sql server 中建立了一个数据库 ElecScroll 库中有一个表s 表中有sno(学号) sn(姓名) age (年龄)sex(性别) class (班级)dept(学院) 等字段
有一个excel表包含其所有对应字段的数据
如何将excel表中的数据导入到该库中
(用C#实现)
请指教...
在sql server 中建立了一个数据库 ElecScroll 库中有一个表s 表中有sno(学号) sn(姓名) age (年龄)sex(性别) class (班级)dept(学院) 等字段
有一个excel表包含其所有对应字段的数据
如何将excel表中的数据导入到该库中
(用C#实现)
请指教...
private void btnView_Click(object sender, System.EventArgs e)
{
dgExcelData.DataSource = null;
FileDialog dlgOpen = new OpenFileDialog();
dlgOpen.Filter="Excel Files (*.xls)|*.xls";
if(dlgOpen.ShowDialog() == DialogResult.OK)
{
txtPath.Text=dlgOpen.FileName;
string strCon = "Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source = "+txtPath.Text.Trim()+";Extended Properties=Excel 8.0" ;
OleDbConnection myConn = new OleDbConnection();
try
{
this.Cursor = Cursors.WaitCursor; //創建一個數據Excel連接******************************************************************
myConn = new OleDbConnection ( strCon ) ;
string strCom = " SELECT * FROM [Sheet1$]" ;
myConn.Open ();
//打開連接得到數據集合
oDS.Clear();
OleDbDataAdapter myCommand = new OleDbDataAdapter ( strCom , myConn ) ;
myCommand.Fill ( oDS , "[Sheet1$]" ) ;
//關閉連接
myConn.Close ( ) ; if (!oDS.Tables[0].Columns.Contains("Insert Result"))
oDS.Tables[0].Columns.Add("Insert Result");
dgExcelData.SetDataBinding(oDS,"[Sheet1$]");
btnOk.Enabled = true;
this.Cursor = Cursors.Arrow;
inifrom();
}
catch(Exception err1)
{
MessageBox.Show(err1.Message);
myConn.Close();
this.Cursor = Cursors.Arrow;
}
}//END
}
private void btnOk_Click(object sender, System.EventArgs e)
{
int nRowCount = oDS.Tables[0].Rows.Count;
int nCountPass = 0;
int nCountFail = 0;
string sql = "";
string sCon = "Provider=MSDAORA;Data Source=kssfis;User Id=mes_ks1;Password=mes_ks1;";
OleDbConnection cn = new OleDbConnection(sCon);
cn.Open();
OleDbCommand cmd = new OleDbCommand();
OleDbTransaction Tran = cn.BeginTransaction(IsolationLevel.ReadCommitted);
cmd.Transaction = Tran;
//Tran.Begin();
for(int i =0;i<nRowCount;i++)
{
try
{
sql = "insert into bwc.erp_temp( part_no, erp_qty)";
sql += " values('"+oDS.Tables[0].Rows[i][0].ToString().Trim()+"',"+oDS.Tables[0].Rows[i][1].ToString().Trim()+")";
cmd.Connection = cn;
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
nCountPass++;
oDS.Tables[0].Rows[i].Delete();
this.Text="[ PASS:"+nCountPass+" ] [ FAIL:"+nCountFail+" ]";
}
catch(Exception ex)
{
oDS.Tables[0].Rows[i][4] = ex.Message;
nCountFail++;
this.Text="[ PASS:"+nCountPass+" ] [ FAIL:"+nCountFail+" ]";
}
prebar.Value = i; }
cmd.Transaction.Commit();
/// 将Excel中的数据读入DataSet
/// </summary>
/// <param name="fileName">文件路径和文件名</param>
/// <returns>DataSet</returns>
private DataSet ReadExcel(string fileName)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +"Data Source="+ fileName +";"+"Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
conn.Open();
string strExcel = "";
OleDbDataAdapter myCommand = null;
strExcel="select * from [sheet1$]";//从默认的sheet1表中读入数据
myCommand = new OleDbDataAdapter(strExcel, strConn);
DataSet ds = new DataSet();
myCommand.Fill(ds,"Data");
conn.Close();
return ds;
}
后面是从DataSet往数据库写数据就不用写了吧