2014-03-04 156 views
0

我需要使用asp.net將Excel文件導入SQL Server。當我點擊鏈接時,會彈出一個文件打開對話框。它應該只允許用戶選擇Excel文件(*.xls, *.xlsx)。將Excel文件導入SQL Server

我試圖使用時我點擊此它被調用的方法等一個boutton:

protected void btnBrowse_Click(object sender, EventArgs e) 
{   
    using (OpenFileDialog openFileDialog = new OpenFileDialog()) 
    { 
     openFileDialog.Multiselect = false; 
     openFileDialog.Filter = "Data Sources (*.xls, *.xlsx)|*.xls*;*.xlsx"; 

     if (openFileDialog.ShowDialog() == DialogResult.OK) 
     { 
      txtFileName.Text = openFileDialog.FileName; 
     } 
    } 
} 

但它示出了上openFileDialog.ShowDialog() == DialogResult.OK錯誤:當前線程必須被設置爲單個線程單元(STA)模式然後纔可以進行OLE呼叫。確保您的Main函數具有標記的STAThreadAttribute。只有在調試器連接到進程時纔會引發此異常。 有什麼想法嗎?

回答

0

嘗試使用常規驗證表達式將文件擴展名限制爲所需類型。

ValidationExpression="^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))(.xls|.XLS|.xlsx|.XLSX)$" 

祝你好運!

+0

我不是在尋找vaildition,我正在尋找當我點擊瀏覽按鈕它應該去檢查。 – user2763879

0

見於:http://forums.asp.net/t/1207019.aspx

獲取經由使用下面的代碼FileUpload控件選擇的文件的擴展名。

string Extension = Path.GetExtension(flUpdUpload.PostedFile.FileName); 
    /* this will give u the extension*/ 

把一個開關箱來決定你想要哪種類型。

switch (Extension) 
      { 
       case ".xls": 
        code here; 
        break; 

       case ".xlsx": 
        code here; 
        break; 
      }