C# Can';t将数据表值赋给字符串
嘿,伙计们,我们有一个非常简单的数据表,它通过excel通过以下方式导入:C# Can';t将数据表值赋给字符串,c#,asp.net,C#,Asp.net,嘿,伙计们,我们有一个非常简单的数据表,它通过excel通过以下方式导入: cmdExcel.CommandText = "SELECT * From [" + SheetName + "A:B]"; oda.SelectCommand = cmdExcel; oda.Fill(dt); 我不使用任何标题,因此列的名称是默认的-F1和F2。问题是,我无法将第二列中的任何值赋给变量。但是第一个的值可以正确分配 string firstColumn = dt.Rows[1]["F1"] as st
cmdExcel.CommandText = "SELECT * From [" + SheetName + "A:B]";
oda.SelectCommand = cmdExcel;
oda.Fill(dt);
我不使用任何标题,因此列的名称是默认的-F1和F2。问题是,我无法将第二列中的任何值赋给变量。但是第一个的值可以正确分配
string firstColumn = dt.Rows[1]["F1"] as string;
string secondColumn = dt.Rows[1]["F2"] as string;
我附加了一个屏幕,在这里你们可以看到,什么是在数据表。在第一列中存储“ABC”,这是正常的,但第二列的值为空。这应该很容易,但这里出了点问题,我不知道是什么。你能帮我吗
将其显式强制转换为
Int32
,而不是如下所示的字符串:
int secondColumn = Convert.ToInt32(dt.Rows[1]["F2"]);
您的屏幕截图将其显示为整数值。所以,如果将其转换为整数,它应该可以工作
dt.Rows[1]["F1"]
这似乎是矛盾的
检索文档的第二行dt.Rows[1]
可在文档的第一行找到“F1”
dt.Rows[1]["F2"]
如果您声称检索到了dt.Rows[1][“F1”]
,那么我希望在dt.Rows[2]
上找到字段F2,而不是dt.Rows[1]
无论问题发生在代码的第一行还是第二行,我认为您试图检索的字段根本不存在于您正在寻址的特定行中。dt.Rows[1][“F2”]的确切值是多少?
dt.Rows[1][“F2”].GetType().FullName
返回什么?它可能是一个int-dontas字符串,它返回double,这就是问题所在。谢谢你,马克。我只是想,如果它是由excel导入的,并且dt是自动创建的,那么所有的单元格都将是相同的类型-字符串。