【问题标题】:Import Excel file into SQL Server将 Excel 文件导入 SQL Server
【发布时间】:2014-04-05 12:54:20
【问题描述】:

我需要使用 asp.net 将 Excel 文件导入 SQL Server。当我点击链接时,这应该会弹出一个文件打开对话框。它应该只允许用户选择 Excel 文件 (*.xls, *.xlsx)。

当我点击它时我尝试使用一个按钮,它正在调用如下方法:

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。仅当调试器附加到进程时才会引发此异常。 请问有什么办法吗?

【问题讨论】:

    标签: asp.net c#-4.0


    【解决方案1】:

    见于: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;
                }
    

    【讨论】:

      【解决方案2】:

      尝试使用正则验证表达式将文件扩展名限制为所需的类型。

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

      祝你好运!

      【讨论】:

      • 我不是在寻找 vaildition,当我点击浏览按钮时,我正在寻找它应该进行检查。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-08
      • 2014-05-10
      • 2011-05-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-01
      • 1970-01-01
      相关资源
      最近更新 更多