Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 将Excel文件导入SQL Server_Asp.net_C# 4.0 - Fatal编程技术网

Asp.net 将Excel文件导入SQL Server

Asp.net 将Excel文件导入SQL Server,asp.net,c#-4.0,Asp.net,C# 4.0,我需要使用asp.net将Excel文件导入SQL Server。当我点击链接时,会弹出一个文件打开对话框。它应该只允许用户选择Excel文件(*.xls,*.xlsx) 当我点击此按钮时,我尝试使用boutton,它调用的方法如下: protected void btnBrowse_Click(object sender, EventArgs e) { using (OpenFileDialog openFileDialog = new OpenFileDialog()

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

当我点击此按钮时,我尝试使用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上显示错误:在进行OLE调用之前,必须将当前线程设置为单线程单元(STA)模式。确保主函数上标记了STAThreadAttribute。只有将调试器附加到进程时,才会引发此异常。
有什么想法吗?

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

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

见:

使用以下代码获取通过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;
            }

我不是在寻找Valedition,我是在点击浏览按钮时寻找的,它应该会被选中。