2014-03-04 4 views
0

asp.net을 사용하여 Excel 파일을 SQL Server로 가져와야합니다. 링크를 클릭하면 파일 열기 대화 상자가 열립니다. 사용자는 Excel 파일 (*.xls, *.xlsx) 만 선택할 수 있습니다.Excel 파일을 SQL Server로 가져 오기

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에 오류를 보여주고있다 :

나는 내가 그것을 같은 방법을 호출하고이를 클릭하면 boutton을 사용하려고 현재 스레드가 단일 스레드 아파트로 설정해야합니다 (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; 
      } 
관련 문제