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