C;\11.xls是一個excel表裡面內容
Type_Name \ Type_Order \Type_Check
武術 \ 0 \ 1
sql server2000 裡面有個資料庫shop,其中有一個表Goods_Type有欄位
Type_Id /Type_Name /Type_text /Type_Order /Type_Check /Type_time
其中 Type_Id是可以自增的int型,Type_Time是自動取插入時間的getdate()
我想做一個Web表單,然後用一個button實現匯入功能,
我用了一個button控制項,然後在事件裡面插入我寫的代碼:
private void Button6_Click(object sender, System.EventArgs e)
{
int InsertOk = Base.Insert();
if ( InsertOk ==1)
{
JScript.Alert("成功,歡迎使用!");
}
else
{
JScript.Alert("失敗,請稍後再來!");
return;
}
}
Base.Insert();
在一個Base.cs檔案裡面
public int Insert()
{
int flag = 0;
cmd.CommandText = string.Format ("SELECT * into Goods_Type from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source=C:\\11.xls;Extended Properties=Excel 8.0')...Goods_Type$)");
try
{
conn.Open();
cmd.ExecuteNonQuery();
flag = 1;
}
catch (Exception ex)
{
//throw (ex);
}
finally
{
cmd.Dispose();
conn.Close();
}
return flag;
}
如果throw(ex)不注釋的話,啟動並執行時候會提示這裡throw(ex)附近有語法錯誤
我把這裡注釋掉以後就會彈出來
失敗,請稍後再來的視窗
protected DataTable GetDataTableFromExcel(string FileName)
{
//建立連接字串
String strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + Server.MapPath(FileName) + ";" +
"Extended Properties=Excel 8.0;";
OleDbConnection objConn = new OleDbConnection(strConn);
OleDbCommand objCmd = new OleDbCommand("SELECT * FROM [Sheet1$]", objConn);
OleDbDataAdapter objDA = new OleDbDataAdapter(objCmd);
DataTable objDt = new DataTable();
objDA.Fill(objDt);
return objDt;
}