C# 为什么赢了';我的数据表无法填充

C# 为什么赢了';我的数据表无法填充,c#,excel,gridview,import,C#,Excel,Gridview,Import,我已经找了很长时间,但我找不到我做错了什么 我有一个web应用程序,可以上传电子表格(验证它是否有效),并且应该解析电子表格并填充GridView。看起来很简单,但它不会显示数据 我正在测试的电子表格(作为一个上传;上传工作如预期)是一个简单的单选项卡电子表格,包含所有内容。。。三列的列名和一行数据(总共两行填充的数据,一旦这项工作正常,将被扩展)。选项卡名称是下面的OleDbDataAdapter中使用的CRPRList 页面上没有错误,只是GridView没有填充 以下是ASP.net中的G

我已经找了很长时间,但我找不到我做错了什么

我有一个web应用程序,可以上传电子表格(验证它是否有效),并且应该解析电子表格并填充GridView。看起来很简单,但它不会显示数据

我正在测试的电子表格(作为一个上传;上传工作如预期)是一个简单的单选项卡电子表格,包含所有内容。。。三列的列名和一行数据(总共两行填充的数据,一旦这项工作正常,将被扩展)。选项卡名称是下面的
OleDbDataAdapter
中使用的
CRPRList

页面上没有错误,只是GridView没有填充

以下是ASP.net中的GridView:

<asp:GridView ID="TopicsTbl" runat="server" 
     AllowSorting="False" 
     AllowPaging="False" 
     AutoGenerateColumns="False">
     <Columns>
         <asp:BoundField HeaderText="CR" DataField="CR" />
         <asp:BoundField HeaderText="PR" DataField="PR" />
         <asp:BoundField HeaderText="Summary" DataField="Summary" />
     </Columns>
</asp:GridView>
XLSConnect
字符串将取决于文件是xls还是xlsx:

   string strConn;
    if (fileType.ToLower() == "xls" || fileType.ToLower() == "xlsx") {
        strConn = (fileType == "xlsx") ? string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0\"", filePath) : string.Format("Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.0\"", filePath);

        XLSConnect = new OleDbConnection(strConn);
        return true;
    } else return false; //throw new Exception("file extension is not registering");
我错过了什么?还是我做错了什么

我猜我的GridView设置不正确,或者我的电子表格解析理解不完整。。。不过,这可能太离谱了


谢谢

你可以试试这样简单的东西,吉米

using (var data = new OleDbDataAdapter("SELECT * FROM [CRPRList$]", XLSConnect))
{
    var table = new DataTable();
    data.Fill(table);
    TopicsTbl.DataSource = data;
    TopicsTbl.DataBind();
};

您必须绑定数据:

DataTable data = ds.Tables[0];
TopicsTbl.DataSource = data;
TopicsTbl.DataBind();

Jimmy
在这行代码中你真的需要这个吗
CRPRList“
adapter.Fill(ds,“CRPRList”)连接字符串也可以显示连接字符串,或者至少验证它是否至少连接到数据库
Jimmy
查看此链接应该非常有用,谢谢,这是我还没有看到的:)谢谢DJ,但这甚至不会编译。
OleDbDataAdapter
是一种像变量一样使用的类型。输入错误抱歉..让我来看看e快速编辑,您可以重新编译更改,它将起作用..抱歉,我在当前代码中使用了
SqlDataAdapter
,抱歉初始键入再次感谢..越来越近!我有一个新错误:“数据源是无效类型。它必须是IListSource、IEnumerable或IDataSource。“我正在查找如何使用连接字符串中的一个数据源进行尝试,然后分别使用每个数据源查看它是否有效。我还有代码您可以更改
table=new DataTable
并尝试使用
table=new DataSet
进行操作。我认为这越来越近了。。。但数据仍然不会出现。我以前试过这个变种,就是这样!我所要做的就是将“CRPRList”更改为
0
。非常感谢。
DataTable data = ds.Tables[0];
TopicsTbl.DataSource = data;
TopicsTbl.DataBind();