none
必須先在 GridView 上指定資料索引鍵,才能擷取選取的資料索引鍵。請使用 DataKeyNames 屬性指定資料索引鍵 RRS feed

  • 問題

  • 前端有這個gridview

    string UserID = Session["UserID"].ToString();
                SqlConnection con = new SqlConnection(".........");
                con.Open();
                SqlCommand cmd = new SqlCommand("select * from SensorData where UserID=@UserID", con);
                cmd.Parameters.Add("@UserID", SqlDbType.NVarChar).Value = UserID;
                SqlDataAdapter ad = new SqlDataAdapter();
                ad.SelectCommand = cmd;
                DataSet ds = new DataSet();
                ad.Fill(ds,"UserID");
                PlantsetGridView.DataSource = ds ;
                PlantsetGridView.DataBind();    
                ad.Dispose();
                cmd.Dispose();

                con.Close();    
                PlantMultiView.ActiveViewIndex = 0;

    執行之後

    必須先在 GridView 'PlantsetGridView' 上指定資料索引鍵,才能擷取選取的資料索引鍵。請使用 DataKeyNames 屬性指定資料索引鍵。

    是不是我在前端上有新增commandfiled 跟buttonfiled 的關係?


    • 已編輯 loserr 2016年3月3日 下午 02:46
    2016年3月3日 下午 02:42

解答

  • 應該是你有使用PlantsetGridView的自動更新和刪除功能所以她才會要求你必須加入屬性DataKeyNames指定資料索引鍵。

    看到MSDN GridView.DataKeyNames屬性寫到: 您必須設定 DataKeyNames 屬性,以便讓 GridView 控制項的自動更新和刪除功能運作。這些索引鍵欄位的值會傳遞至資料來源控制項,以指定要更新或刪除的資料列。
    • 已標示為解答 loserr 2016年3月9日 上午 11:00
    2016年3月4日 上午 02:21

所有回覆

  • 沒有關係, 您只要將GridView的DataKeyNames設定成欲操作的資料表的主索引鍵的爛位名稱即可, 例如:
    GridView1.DataKeyNames="UserID";

    2016年3月4日 上午 01:42
  • 應該是你有使用PlantsetGridView的自動更新和刪除功能所以她才會要求你必須加入屬性DataKeyNames指定資料索引鍵。

    看到MSDN GridView.DataKeyNames屬性寫到: 您必須設定 DataKeyNames 屬性,以便讓 GridView 控制項的自動更新和刪除功能運作。這些索引鍵欄位的值會傳遞至資料來源控制項,以指定要更新或刪除的資料列。
    • 已標示為解答 loserr 2016年3月9日 上午 11:00
    2016年3月4日 上午 02:21