gpt4 book ai didi

c# - C#中本例中Get A Specific Column Value from a DataTable时如何解决cast not valid?

转载 作者:太空宇宙 更新时间:2023-11-03 17:24:05 24 4
gpt4 key购买 nike

我的数据表卷土重来,任何包含 2 列的行都包含产品 ID 和产品名称。

数据库表中的产品 ID 是 nvarchar(150)

产品名称是 nvarchar(150)

示例:(在 dt_ProductName 中)

product id                        product name
---------- ------------
1 a 300
3 2 200

** 当文本等于“a 300”时返回产品 Model_ID= 1

我想在值列产品名称 = 文本时获取产品 ID。(for sql = select product id from tbl-product where product name = @productname)

product id` 必须只有一个值。文本为字符串,由用户电报输入

string Model_Names = text.tostring();

Decimal Model_ID = (from DataRow DR in dt_ProductName.Rows
where (string)DR["ProductName"]== Model_Names
select (decimal) DR["ProductID"]).FirstOrDefault();

Specified cast is not valid.

使用此代码时:

 for (int xx = 0; xx > dt_ProductName.Rows.Count;xx++ )
{
if (dt_ProductName.Rows[xx][1].ToString() == Model_Names)
{
Model_ID = (decimal)dt_ProductName.Rows[xx][0];
}
else
{
continue;
}
}

如果不行,只检查count和xx,不检查if?!

最佳答案

您不能使用 (decimal)DR["ProductID"] 将字符串转换为十进制。这是类型转换,字符串十进制不支持。

你必须使用Convert.ToDecimal:

Convert.ToDecimal(DR["ProductID"])

关于c# - C#中本例中Get A Specific Column Value from a DataTable时如何解决cast not valid?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41480637/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com