我的数据表回来任何有2列的行包含产品ID和产品名称.
DB上的表中的产品ID是nvarchar(150)
产品名称是nvarchar(150)
示例:(在dt_ProductName中)
product id product name
---------- ------------
1 a 300
3 2 200
Run Code Online (Sandbox Code Playgroud)
**当文本等于"a 300"时,返回产品Model_ID = 1
我想在值列产品名称=文本时获取产品ID.(对于sql =从产品名称= @productname的tbl-product中选择产品ID)
产品ID`只能有一个值.text是字符串,由用户电报输入
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();
Run Code Online (Sandbox Code Playgroud)
指定演员表无效.
使用此代码时:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
为了不工作,只检查计数和xx但不检查是否?!
您不能将字符串转换为小数(decimal)DR["ProductID"].这是一个类型转换,字符串或小数不支持.
你必须使用Convert.ToDecimal:
Convert.ToDecimal(DR["ProductID"])
Run Code Online (Sandbox Code Playgroud)