Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.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
错误消息";外部表格不是预期的格式";当我试图用C#程序上传文件时_C#_Excel_Datagridview_Oledb_Dataadapter - Fatal编程技术网

错误消息";外部表格不是预期的格式";当我试图用C#程序上传文件时

错误消息";外部表格不是预期的格式";当我试图用C#程序上传文件时,c#,excel,datagridview,oledb,dataadapter,C#,Excel,Datagridview,Oledb,Dataadapter,我正在创建一个C#程序,在这里我可以在C#中的datagridview中浏览和查看文件。我已经测试过很多次了,效果很好。但昨天,当我再次尝试这样做时,显示了一条错误消息,说明“Provider=Microsoft.Jet.OLEDB.4.0;”。我正在测试的文件与我以前使用的文件相同(没有错误)。我没有对文件(excel文件)做任何操作 这是错误消息的打印屏幕: 这是我使用的代码: private void buttonUpload_Click(object sender, EventArg

我正在创建一个C#程序,在这里我可以在C#中的datagridview中浏览和查看文件。我已经测试过很多次了,效果很好。但昨天,当我再次尝试这样做时,显示了一条错误消息,说明“Provider=Microsoft.Jet.OLEDB.4.0;”。我正在测试的文件与我以前使用的文件相同(没有错误)。我没有对文件(excel文件)做任何操作

这是错误消息的打印屏幕:

这是我使用的代码:

 private void buttonUpload_Click(object sender, EventArgs e)
    {
        string OleDBConnection = String.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;""", textBoxFileName.Text);

        string query = String.Format("select * from [{0}$]", "Sheet1");

        OleDbDataAdapter dataAdapter = new OleDbDataAdapter(query, OleDBConnection);

        DataSet dataSet = new DataSet();

        dataAdapter.Fill(dataSet);

        dataGridView1.DataSource = dataSet.Tables[0];

    }

请阅读错误信息中的文字。“外部表的格式不符合要求”非常清楚-您告诉数据提供程序在连接字符串中需要某种格式的文件(
Excel 8.0
),而您打开的文件格式不正确,可能是因为
textBoxFileName.Text
中的文件不受支持。你的问题中绝对没有比这更有用的信息了-检查你正在传递的文件
textBoxFileName.Text
 If Path.GetExtension(pth).ToLower().Equals(".xls") Then
     strcon = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & pth & ";Extended Properties=""Excel 8.0;HDR=YES;IMEX=1;"""
 Else
     strcon = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" & pth & ";Extended Properties=""Excel 12.0;HDR=YES;IMEX=1;"""
 End If