0

別のデータ グリッドビューの rowcommand イベントで設定されたグリッドビューを使用しています

問題は、selectedchanged イベントで selecteddatakey プロパティを使用しようとすると、常にエラーが発生することです。

オブジェクト参照がオブジェクトのインスタンスに設定されていません

cmd1.Parameters.AddWithValue("@busid", GridView2.SelectedDataKey.Value.ToString());

デバッグで実行したところ、selecteddatakey が null であることがわかりました

グリッドビューにデータを入力するために使用したコードを次に示します

SqlDataSource2.ConnectionString = "Data Source=localhost;Initial Catalog=WCA Database;Integrated Security=True";
                SqlDataSource2.SelectCommand = "FindAvaliableBuses";
                SqlDataSource2.SelectCommandType = SqlDataSourceCommandType.StoredProcedure;
                SqlDataSource2.DataBind();

                int index = Convert.ToInt32(e.CommandArgument);
                string Startdate = GridView1.Rows[index].Cells[3].Text;
                string DueDate = GridView1.Rows[index].Cells[4].Text;
                SqlDataSource2.SelectParameters.Add("startdate", Startdate);
                SqlDataSource2.SelectParameters.Add("duedate", DueDate);
                SqlDataSource2.SelectParameters.Add("branchId", "11");
                GridView2.DataSource = SqlDataSource2;
                GridView2.DataBind();
                GridView2.DataKeyNames = new string[] {"BusId"};
                Label1.Text = index.ToString();

選択に使用するコードは次のとおりです。

protected void GridView2_SelectedIndexChanged(object sender, EventArgs e)
{
    SqlConnection con1 = new SqlConnection("Data Source=localhost;Initial Catalog=WCA Database;Integrated Security=True");
    con1.Open();
    SqlCommand cmd1 = new SqlCommand("insert BusAcivity (BusId, ActivityId) values(@busid, @activityid)", con1);
    cmd1.Parameters.AddWithValue("@busid", GridView2.SelectedDataKey.Value.ToString());
    cmd1.Parameters.AddWithValue("@activityid", Label1.Text);
    cmd1.ExecuteNonQuery();
}
4

0 に答える 0