中易网

C# dataSet 类型转换

答案:3  悬赏:0  
解决时间 2021-04-28 04:23
  • 提问者网友:喵星人荷西
  • 2021-04-27 10:38

从数据库读出数据时出现了类型不匹配现象,代码如下

string type = null, detail = null, remark = null;

 int num = 0;
double price = 0.0;

//查询商品信息的SQL语句
string infosql = string.Format("select typeName,goodPrice,goodCount,goodDetail,

goodRemark from goodsInfo where goodsId={0}", Convert.ToInt32(txtId.Text));
DataSet dataSet = new DataSet(); //产生一个数据对象集

try
{
       SqlDataAdapter dataAdapter = new SqlDataAdapter(infosql, DBHelper.con);
       dataAdapter.Fill(dataSet, "goodsInfo");        //数据适配器填充数据单元

       foreach (DataRow row in dataSet.Tables["goodsInfo"].Rows)
       {
          Console.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}", row["typeName"], row["goodPrice"], row["goodDetail"], row["goodRemark"], row["goodCount"]);
            type = (string)row["typeName"];
            detail = (string)row["goodDetail"];
            remark = (string)row["goodRemark"];
            num = (int)row["goodCount"];
            price = (double)row["goodPrice"];
   }

我的数据库中goodsInfo有5个属性 goodsId  int  自动增长 ,typeName  varchar ,goodCount int, goodprice  money  , goodDetail varchar ,goodRemark varchar .

错误地方是黑体,错误信息:

指定的转化无效

最佳答案
  • 二级知识专家网友:两不相欠
  • 2021-04-27 12:16
price = (decimal )row["goodPrice"];   你试一下
全部回答
  • 1楼网友:转身→时光静好
  • 2021-04-27 13:25

学我这样,很标准的写法哦:⊙﹏⊙

price = Convert.ToDouble(row["goodPrice"].ToString());

  • 2楼网友:如果这是命
  • 2021-04-27 13:11

隐式不行就这样转换嘛。

price =double.pase(row["goodPrice"].ToString());

我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息