我已经搜索了很长时间,我找不到我做错了什么。
我有一个上传电子表格的网络应用程序(经验证可行),应该解析电子表格并填充GridView。看起来很简单,但它不会显示数据。
我正在测试的电子表格(作为上传;上传按预期工作)是一个简单的单选项卡电子表格,其中包含一些无聊的香草...三列,列名称包含一行数据(总共两行填充,一旦这个东西工作,注定要扩大)。标签名称是CRPRList
中使用的OleDbDataAdapter
。
我在页面上没有错误,只是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设置不正确,或者我的电子表格解析理解不完整......可能会有所改进!
由于
答案 0 :(得分:0)
你可以尝试像Jimmy这样简单的东西
using (var data = new OleDbDataAdapter("SELECT * FROM [CRPRList$]", XLSConnect))
{
var table = new DataTable();
data.Fill(table);
TopicsTbl.DataSource = data;
TopicsTbl.DataBind();
};
答案 1 :(得分:0)
您必须绑定数据:
DataTable data = ds.Tables[0];
TopicsTbl.DataSource = data;
TopicsTbl.DataBind();