-2
private void dataGridView1_DoubleClick(object sender, EventArgs e)
{
    try
    {
        DataTable dt = new DataTable();

        // In database there are three columns: proid, proname, and unitprice.
        // I need this to retrieve in respective textbox when i double click
        // the value in datagrid view
        SqlDataAdapter da = new SqlDataAdapter(" select * from tblproduct where proid = " +
            Convert.ToInt16(dataGridView1.SelectedRows[0].Cells[0].Value.ToString()) + "", con);
        // Something wrong near this select statement so getting error index was out of range.
        da.Fill(dt);
        textBox1.Text = dt.Rows[0][0].ToString();
        textBox2.Text = dt.Rows[0][1].ToString();
        textBox3.Text = dt.Rows[0][2].ToString();
    }
    catch (Exception error)
    {
        MessageBox.Show(error.ToString());
    }
}
4

2 に答える 2

5

これは、次の 4 つの異なる行でのみ発生します。

// either SelectedRows or Cells is zero length
dataGridView1.SelectedRows[0].Cells[0]

// either Rows is zero length or there are no columns returned
dt.Rows[0][0]

// either Rows is zero length or there is only 1 column returned
dt.Rows[0][1]

// either Rows is zero length or there are only 2 columns returned
dt.Rows[0][2]

最も可能性の高い行は?

// there are no SelectedRows
dataGridView1.SelectedRows[0].Cells[0]

// there are no Rows returned
dt.Rows[0][0]
于 2013-07-09T12:19:58.100 に答える
0

SqlDataAdapter が私が使用した他のアダプターのようなものである場合は、最初に接続を確立する必要があります。提供されたコード サンプルからは、接続を確立しているようには見えません。次のようなことを試す必要があるかもしれません:

SqlConnection connex = new SqlConnection();
connex.ConnnectionString = "connection string to data";

try
{
    //connect to the database
    connex.Open();
    //set the select command to be used for pulling in info
    da.SelectCommand.Connection = connex;
    //fill the dbData object with data from the database
    da.Fill(dt);
    //close database connection
    connex.Close();
}
catch (Exception ex) { }
于 2013-07-09T12:23:37.033 に答える