将价值从一种形式传递到另一种形式

时间:2015-03-24 21:02:06

标签: c# database winforms datagridview

在一个表单上,我有一个带有一个用户可以单击的按钮的列的dgv,它将它们带到另一个表单,其中显示有关该特定项的更多信息(从db读取)。

以下是单元格按钮单击的代码:

   private void datagridview1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
        //MORE INFORMATION BUTTON DGV1
        this.rowIndex1 = e.RowIndex;
        this.ID = Convert.ToInt32(datagridview1.Rows[this.rowIndex1].Cells["id"].Value);
        moreinformation moreinfo1 = new moreinformation();
        moreinfo1.Show();
        }

我使用public int ID { get; set; }将特定项目的ID传递给另一个表单,以便它可以从数据库中获取正确的数据到“更多信息”。形式。

以下是信息页面的代码:

private void moreinformation_Load(object sender, EventArgs e)
        {
        //DISPLAY RELEVANT INFO FROM DB
        invmain invmain2 = new invmain();

        Connection();
        sqlconnection.Open();

        sqlcmd = new SqlCommand("SELECT * FROM inventory_table WHERE id= " + invmain2.ID, sqlconnection);

        using (SqlDataReader sqldr = sqlcmd.ExecuteReader())
        {
            while (sqldr.Read())
            {
                txtbx1.Text = (sqldr["item"].ToString());
                txtbx2.Text = (sqldr["quantity"].ToString());
                linklbl1.Text = (sqldr["datasheet"].ToString());
                txtbx3.Text = (sqldr["description"].ToString());
                datelbl2.Text = (sqldr["date"].ToString());
            }

            sqldr.Close();
         }

        sqlconnection.Close();
       }

我检查确保ID(在第一张表单上)正确设置为正确的ID(基于项目)。但是,在更多信息表单中,如果我包含一些消息框代码以显示ID:MessageBox.Show(invmain2.ID.ToString());,则表明ID0

出了什么问题,我该如何解决?

1 个答案:

答案 0 :(得分:1)

ID属性应位于moreinformation表单上。如果您没有,请继续向该表单添加public int ID { get; set; }。然后,您必须将ID传递给第二个表单的实例。因此,如果您拥有moreinformation.ID属性,请将其设置如下:

private void datagridview1_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
        //MORE INFORMATION BUTTON DGV1
        this.rowIndex1 = e.RowIndex;
        this.ID = Convert.ToInt32(datagridview1.Rows[this.rowIndex1].Cells["id"].Value);
        moreinformation moreinfo1 = new moreinformation();
        //ADD THIS LINE
        moreinfo1.ID = this.ID;
        moreinfo1.Show();
        }