为什么我的数据表没有填充?

本文关键字:填充 我的 数据表 为什么 | 更新日期: 2023-09-27 18:03:30

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

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

我正在测试的电子表格(作为上传;上传工作如预期)是一个简单的单TAB电子表格与一切无聊的香草…带有列名的三列和一行数据(总共填充了两行,一旦这个东西工作了,就注定要展开)。选项卡名称是下面的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>

我已经得到了下面的代码。我的意思是我已经测试了所有的东西,直到这个。没有错误,事情似乎像预期的那样工作……除了GridView不会填充:

    OleDbDataAdapter adapter = new OleDbDataAdapter("SELECT * FROM [CRPRList$]", XLSConnect);
    DataSet ds = new DataSet();
    adapter.Fill(ds, "CRPRList");
    DataTable data = ds.Tables["CRPRList"];
    TopicsTbl.DataSource = data;

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没有设置正确,或者我的电子表格解析理解不完整…但这可能是错误的!

谢谢

为什么我的数据表没有填充?

必须绑定数据:

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

你可以试试这样简单的方法Jimmy

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