2012-05-27 103 views
0

我有兩個表。如何實現編輯主/從記錄?

tbl_Request(PKRequestID, RequestCode) and tbl_Personnel(PKPersonID, PerosnelName FKRequestID) 

FKrfequestID是tbl_request的外鍵。我在Requests.aspx頁面中有一個顯示tbl_request記錄的網格視圖。此頁面中還有一個「New Item」按鈕。當用戶單擊此按鈕時,將打開RequestInsert.aspx頁面。在這個頁面中,用戶輸入一些數據,如RequestCode,並點擊「下一步」按鈕,進入Personel.aspx頁面,該頁面包含一個GridView,顯示與請求相關的人員。在這個頁面中,用戶應該定義與請求有關的人員。當整個過程完成用戶點擊「保存」按鈕。兩個表格將在用戶點擊「保存」按鈕時更新。我如何實現Personel.aspx頁面?

這裏是personnelaspx.cs代碼代碼:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     DataTable dttbl = new DataTable(); 
     dttbl.Columns.Add("PKPersonID", System.Type.GetType("System.String")); 
     dttbl.Columns.Add("PerosnelName", System.Type.GetType("System.String")); 
     dttbl.Columns.Add("FKRequestID", System.Type.GetType("System.String")); 
     Session["MyDataTable"] = dttbl; 
    } 
} 
protected void btnok_Click(object sender, EventArgs e) 
{ 
    DataTable t = (DataTable)Session["MyDataTable"]; 
    DataRow row1 = t.NewRow(); 

    row1["PKPersonID"] = txtid.Text ; 
    row1["PerosnelName"] = txtname.Text; 
    row1["FKRequestID"] = Session["FKRequestID"]; 
    t.Rows.Add(row1); 

    Session["MyDataTable"] = t; 
    GridView1.DataSource = t; 
    GridView1.DataBind(); 
} 

protected void btnsave_Click(object sender, EventArgs e) 
{ 
     DataTable t2 = (DataTable)Session["MyDataTable"]; 
     SqlConnection con = new SqlConnection("connection_string" 
     using (SqlCommand command = con.CreateCommand()) 
     { 
      //Here you are inserting values to tbl_Request 
      if (con.State == 0) 
       con.Open(); 
      command.CommandText = @"INSERT INTO tbl_Request (PKRequestID,RequestCode) VALUES (@PKRequestID,@RequestCode)"; 
     command.Parameters.AddWithValue("@PKRequestID", Session["PKRequestID"]); 
     command.Parameters.AddWithValue("@RequestCode", Session["RequestCode"]); 
     command.ExecuteNonQuery(); 
    } 

    foreach (DataRow row in t2.Rows) 
    { 
     //Here you are inserting values to tbl_Personnel 
     using (SqlCommand command2 = con.CreateCommand()) 
     { 
      if (con.State == 0) 
       con.Open(); 
      command2.CommandText = @"INSERT INTO tbl_Personnel (PerosnelName, FKRequestID) VALUES (@PerosnelName, @FKRequestID)"; 
      command2.Parameters.AddWithValue("@PerosnelName", txtname.Text); 
      command2.Parameters.AddWithValue("@FKRequestID", Session["PKRequestID"]); 
      command2.ExecuteNonQuery(); 
     } 
    } 
} 

我如何能實現編輯模式?在這種模式下,我希望用戶能夠刪除人員或添加他們?

+0

因此,您想在人員保存到數據庫之前從'personnelaspx'頁面刪除人員。我對嗎? –

+0

否。想象一下,用戶添加了請求及其相關人員。我希望用戶能夠點擊Request.aspx頁上的Edit按鈕,並且能夠編輯請求信息並編輯或編輯添加到此請求的人員。 – Karadous

回答

0

好的。當用戶單擊Edit button時,您需要使用session來存儲要編輯的記錄的tbl_Request.PKRequestID。之後,請將用戶指向新頁面Edit_Requests_Personnel.aspx,您可以在其中編輯記錄。

+0

您是否知道當用戶在gridview中單擊Edit時如何獲取所選行? – Karadous

+0

發佈您的gridview的html。我會幫你。 –