簡體   English   中英

無法將所有選定的行添加到數據集中

[英]can't add all the selected rows to the dataset

我已經加入所選擇的記錄( checkbox在a)中datatable如下所示,記錄已經在已顯示datagrid使用填充stored procedure 然后在button clicksave所有選定(添加)的記錄savedatabaseds中。

public DataSet getMain()
    {
        DataSet ds = CFObj.GetSchemaRequest();
        DataRow dr;
        dr = ds.Tables[0].NewRow();
        for (int i = 0; i < dgAvailableCandidates.Items.Count; i++)
        {
            CheckBox saveChkBoxItem = (CheckBox)dgAvailableCandidates.Items[i].FindControl("chkbox_SelectCandidate");
            if (saveChkBoxItem.Checked)
            {
                //ds.Tables[0].Columns["pk_scrndRecId"].ReadOnly = false;
                dr["pk_scrndRecId"] = "0";
                dr["fk_jobId"] = ddl_jobList.SelectedValue.ToString();
                obj._fkjob_Id = ddl_jobList.SelectedValue.ToString();
                dr["fk_recId"] = dgAvailableCandidates.DataKeys[i].ToString();
                obj._fk_recId = dgAvailableCandidates.DataKeys[i].ToString();
            }

        }
        ds.Tables[0].Rows.Add(dr);
        return ds;
    }

這是我的問題是當ds.Tables[0].Rows.Add(dr); 我把它放在循環外,它只向ds添加最后一個選定的記錄,當我把它放在loop ,它引發以下exception

[pk_scrndRecId]列為只讀

當我將其放置在if塊中時,它將引發以下exception

該行已經屬於該表。

我不明白為什么這段代碼沒有將所有選定的datagrid行添加到ds

請幫忙。 謝謝!

您必須創建一個新行並將其添加到循環內的數據表中 ,因此每次它都會創建一個新實例並將其添加到您的數據表中。
檢查更新的代碼。

public DataSet getMain()
{
    DataSet ds = CFObj.GetSchemaRequest();
    DataRow dr;
    for (int i = 0; i < dgAvailableCandidates.Items.Count; i++)
    {
        CheckBox saveChkBoxItem = (CheckBox)dgAvailableCandidates.Items[i].FindControl("chkbox_SelectCandidate");
        if (saveChkBoxItem.Checked)
        {
            dr = ds.Tables[0].NewRow();
            //ds.Tables[0].Columns["pk_scrndRecId"].ReadOnly = false;
            dr["pk_scrndRecId"] = "0";
            dr["fk_jobId"] = ddl_jobList.SelectedValue.ToString();
            obj._fkjob_Id = ddl_jobList.SelectedValue.ToString();
            dr["fk_recId"] = dgAvailableCandidates.DataKeys[i].ToString();
            obj._fk_recId = dgAvailableCandidates.DataKeys[i].ToString();
            ds.Tables[0].Rows.Add(dr);
        }
    }

    return ds;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM