我有2个网格视图。 Gridview1有自行车的详细信息,可供出租。 Gridview1也有一个按钮。当单击gridview1上的按钮时,相关的行应该添加到gridview2
Gridview2是从gridview1中选择的自行车。我尝试过编写代码,但它不起作用。
以下是我的代码
private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
{
int id = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells["IndBikeID"].Value.ToString());
SqlConnection con = Database.GetCnn();
con.Open();
string command = "select * from Bike_IndividualBike Where Bike_IndividualBike.Status = 'Available' AND IndBikeID=" + id + "";
SqlCommand cmd = new SqlCommand(command, con);
DataTable dt = new DataTable();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
foreach (DataRow dr in dt.Rows)
{
}
}
我不确定在foreach循环中放入什么。
为什么我们需要int id变量?
有人可以帮助我。该项目是租用自行车。
答案 0 :(得分:0)
您可以在<asp:LinkButton../>
中添加GridView1
。正如您在GridView1
中提到的那样,有一个可用的自行车列表,您已适当地填充了该gridview。
点击LinkButton
后,您可以INSERT
将id
添加到所选自行车表中,以进行GridView2
查询。
完成后,您可以使用仅选择所选自行车的查询来填充GridView1
。
因为,页面上会发生回发(由于点击了链接按钮),GridView1
将根据查询获取数据(仅可用自行车)因此以前选择的自行车将不会显示在GridView2
中,并将填入您的{{1}}内(假设您已经提到了我提到的书面查询!)
答案 1 :(得分:0)
我认为使用SqlDataReader可能更容易
con.Open();
string command = "select * from Bike_IndividualBike Where Bike_IndividualBike.Status = 'Available' AND IndBikeID=" + id + "";
SqlCommand cmd = new SqlCommand(command, con);
using (SqlDataReader read = cmd.ExecuteReader())
while (read.Read())
{
object[] values = new object[read.FieldCount];
read.GetValues(values);
dataGridView2.Rows.Add(values);
}