[已解决]调试时遇到此错误,错误如下:
尝试解释或访问此数据源第 0 行中 GetColumnNumber(Name) 的数据字段时出错
无法访问数据标记 <%%=Production.ProductID> 的此字段名称或索引
解决方案:将数据标记从 %%=Production.ProductID 替换为 %%=$Production
[更新] @AlisonB 再次对错误提供了很大帮助。现在可以调试它,但它显示另一个像这样的错误:
所有数据源都必须是唯一的。名称“生产”和工作表”已用于数据源。
在阅读器或 IdSQL 旁边,我将如何使用名称放入 XLT.BindCellData()?因为如果我使用阅读器,我会遇到这个错误。IdSQL 也是如此。但是,如果我删除 while 语句,它可以调试,但 excel 文件将在所有单元格中显示为 System.Data.SqlClient.SqlDataReader 而不是实际数据。
static void Main(string[] args)
{
ExcelTemplate XLT = new ExcelTemplate();
XLT.Open(@"C:\Users\administrator.EBSDLAB\Desktop\Examples\Test_DB\test.xlsx");
DataBindingProperties dataProps = XLT.CreateDataBindingProperties();
var strCon = ConfigurationManager.ConnectionStrings["Production"].ConnectionString;
SqlConnection sqlCon = new SqlConnection(strCon);
string IdSQL = "SELECT Name, Size, Color FROM Production.Product";
sqlCon.Open();
SqlCommand cmd = new SqlCommand(IdSQL, sqlCon);
SqlDataReader reader = cmd.ExecuteReader();
while(reader.Read())
{
XLT.BindCellData(IdSQL, "Production", dataProps);
}
XLT.BindCellData(reader, "Production", dataProps);
XLT.Process();
XLT.Save(@"C:\Users\administrator.EBSDLAB\Desktop\Examples\Test_DB\products.xlsx");
}