如何从异常中获取特定信息以将其添加到我自己的消息中?
How can I get specific info from exception to add it in my own message?
我正在从 xlx/xlxs 文件中检索数据。我实际上是在使用 ExcelDataReader 库通过 ExcelDataReader 插件将数据保存到 DataSet 中。
excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
excelDataTable = excelReader.AsDataSet(conf);
现在我正在尝试将 System.Data.DataSet 转换为强类型数据集。
public DocAdmin.GHDefinitionDataTable ConvertDataTable(DataTable dtOriginal)
{
DocAdmin.GHDefinitionDataTable ghDefiniton = new DocAdmin.GHDefinitionDataTable();
int ExcelRowNumber = 1;
foreach (DataRow row in dtOriginal.Rows)
{
++ExcelRowNumber;
try
{
ghDefinition.ImportRow(row);
}
catch (ArgumentException ex)
{
OperationMessage message = new OperationMessage();
this.ShowMessage(message );
}
}
return ghDefinition;
}
我收到此异常消息:
Input string was not in a correct format.Couldn't store in
SAHasta Column. Expected type is Decimal.
这是因为我故意在单元格上设置 "NULL" 值。
我想显示一条消息,指定行号(Excel 文件上的单元格号),我正在使用 ++ExcelRowNumber 来显示它,但我没有知道如何从强类型数据集中获取列名和数据类型,这给了我异常。
我知道异常会自行指定:无法存储在 SAHasta 列中,但我必须用西班牙语创建自定义消息。
我想知道是否有办法从异常中获取列名和数据类型。我想向用户指定给出问题的值,以便他可以修改 excel 文件并重新上传。
提前致谢,对不起我的英语。
像这样简单的方法来获取失败的行怎么样?
public DocAdmin.GHDefinitionDataTable ConvertDataTable(DataTable dtOriginal)
{
DocAdmin.GHDefinitionDataTable ghDefiniton = new DocAdmin.GHDefinitionDataTable();
int ExcelRowNumber = 1;
foreach (DataRow row in dtOriginal.Rows)
{
++ExcelRowNumber;
try
{
ghDefinition.ImportRow(row);
}
catch (ArgumentException ex)
{
System.Windows.Forms.MessageBox.Show("Error on line " + ExcelRowNumber)
}
}
return ghDefinition;
}
要了解导入模块失败的确切值,您需要查看 DocAdmin.GHDefinitionDataTable 定义本身。不知道那个位是如何工作的,很难说清楚。
我正在从 xlx/xlxs 文件中检索数据。我实际上是在使用 ExcelDataReader 库通过 ExcelDataReader 插件将数据保存到 DataSet 中。
excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
excelDataTable = excelReader.AsDataSet(conf);
现在我正在尝试将 System.Data.DataSet 转换为强类型数据集。
public DocAdmin.GHDefinitionDataTable ConvertDataTable(DataTable dtOriginal)
{
DocAdmin.GHDefinitionDataTable ghDefiniton = new DocAdmin.GHDefinitionDataTable();
int ExcelRowNumber = 1;
foreach (DataRow row in dtOriginal.Rows)
{
++ExcelRowNumber;
try
{
ghDefinition.ImportRow(row);
}
catch (ArgumentException ex)
{
OperationMessage message = new OperationMessage();
this.ShowMessage(message );
}
}
return ghDefinition;
}
我收到此异常消息:
Input string was not in a correct format.Couldn't store in SAHasta Column. Expected type is Decimal.
这是因为我故意在单元格上设置 "NULL" 值。
我想显示一条消息,指定行号(Excel 文件上的单元格号),我正在使用 ++ExcelRowNumber 来显示它,但我没有知道如何从强类型数据集中获取列名和数据类型,这给了我异常。 我知道异常会自行指定:无法存储在 SAHasta 列中,但我必须用西班牙语创建自定义消息。
我想知道是否有办法从异常中获取列名和数据类型。我想向用户指定给出问题的值,以便他可以修改 excel 文件并重新上传。
提前致谢,对不起我的英语。
像这样简单的方法来获取失败的行怎么样?
public DocAdmin.GHDefinitionDataTable ConvertDataTable(DataTable dtOriginal)
{
DocAdmin.GHDefinitionDataTable ghDefiniton = new DocAdmin.GHDefinitionDataTable();
int ExcelRowNumber = 1;
foreach (DataRow row in dtOriginal.Rows)
{
++ExcelRowNumber;
try
{
ghDefinition.ImportRow(row);
}
catch (ArgumentException ex)
{
System.Windows.Forms.MessageBox.Show("Error on line " + ExcelRowNumber)
}
}
return ghDefinition;
}
要了解导入模块失败的确切值,您需要查看 DocAdmin.GHDefinitionDataTable 定义本身。不知道那个位是如何工作的,很难说清楚。