private void getInfo()
        {
            ID = textBox1.Text;
            SqlConnection con = cont.conn();
            SqlCommand com = new SqlCommand("select * from GoodsInfo where ID= '" + ID + "'", con);
            con.Open();
            SqlDataReader dr = com.ExecuteReader();
            dr.Read();
            GoodsName = dr.GetString(1);
            UnitPrice = dr.GetValue(3).ToString();
            GoodsAmount = dr.GetValue(3).ToString();
            con.Close();
            SqlDataAdapter da = new SqlDataAdapter("select * from GoodsInfo where ID= '" + ID + "'", con);
            DataSet ds = new DataSet();
            da.Fill(ds, "GoodsOrder");
            dataGridView1.Rows.Add(ID, GoodsName, UnitPrice, GoodsAmount);
        }
这个是我现在的代码,除去最后那行是我今天改的外,其他的部分+dataGridView1.DataSource = ds.Tables["GoodsOrder"];之前运行的时候,单价是可以显示出来的,但是现在单价全部都显示为0了,这是个什么情况?
数据库里的表,我把ID,GoodsName,UnitPrice和GoodsAmount都设置的是nvarchar(MAX)

解决方案 »

  1.   

    检查一下你的GetValue方法,把这个方法贴出来
      

  2.   

    是说DataAdapter那块么?那之后的3条语句,我有试着注释掉再运行,但是还是这样。。
      

  3.   

    这个C#是体育老师教的吗?
    一个不应该在一个方法里的东西全在一个方法里。
    先给dataGridView1加一行,再给他绑定数据,什么意思嘛?编程就是“人机聊天”吗?想到哪句说一句。退回重学
      

  4.   

    改之前,第一次输入ID,可以显示商品信息,但是紧接着再输第二次ID,之前查出来的会没有。现在要的是查出新的ID对应的商品信息后,还能看到之前查看的结果
      

  5.   

    UnitPrice = dr.Table[ "GoodsOrder"].Rows[0]["UnitPrice"].ToString();