日期:2014-05-17  浏览次数:20644 次

输入一个ID,然后在datagridview中显示出相关信息,再输第二个ID的时候,查出来后,只能显示第二个ID的信息,第一个的没有了。。我要都显示该怎么办?
这个是我目前的代码:
 private void button2_Click(object sender, EventArgs e)
        {
            
            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.DataSource = ds.Tables["GoodsOrder"];
            

        }

------解决方案--------------------
方法1、再创建一个DataTable对象,把新查出的数据添加到这个DataTable中然后显示新DataTable的数据就是每次都有了

方法2、换一下查询条件,把ID=改为ID in('',''),然后每次查询成功的ID号保存到一个字符串中,每次重新查询时都把之前的追加到ID号列表中
------解决方案--------------------
看来你是真新手啊 呵呵~跟我不久前的状态一样,我直接给你写吧...从DataTable下开始

 DataTable dt = new DataTable();
 DataColumn dc = new DataColumn("ID", typeof(System.String));
dt.Columns.Add(dc);
//这里吧DataColumn删掉
dc = new DataColumn("GoodsName",typeof(System.String));
dt.Columns.Add(dc);
dc = new DataColumn("UnitPrice",typeof(System.String));
dt.Columns.Add(dc);
dt.Rows.Add(new object[] { (ID).ToString(),(GoodsName).ToString(),(GoodsAmount ).ToString()});

DataGrid1.ItemsSource = DataGrid1.DefaultView; 这句有错可能是你DataGrid1名字不对,你要去前面的。xaml文件看看 你的DataGrid起的什么名字 一般的话你要是没改 应该就是dataGrid1
其实C#改错很容易,你好好看看下面的错误提示就可以