2012-05-25 62 views
1

我有两个表。ASP.NET中的主站详细信息

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

FKrfequestID是一个外键tbl_request。 我有一个显示tbl_request记录的Requests.aspx页面中的网格视图。此页面中还有一个“New Item”按钮。当用户单击此按钮时,将打开RequestInsert.aspx页面。在这个页面中,用户输入一些数据,如RequestCode,并点击“下一步”按钮,进入Personel.aspx页面,该页面包含一个GridView,显示与请求相关的人员。在这个页面中,用户应该定义与请求有关的人员。当整个过程完成用户点击“保存”按钮。两个表格将在用户点击“保存”按钮时更新。我如何实现Personel.aspx页面?

+0

后,你已经尝试了代码。 –

+0

你的问题有点混乱。 **“当用户想要将新记录添加到tbl_Reque ...”**和**“数据库中,直到用户确认整个过程...”**正在给我造成混淆。请澄清。 –

+0

我编辑了问题Krishanu Dey。 – Karadous

回答

1

这里有一个办法:

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

我已经完成了这项工作。但我不知道如何实现Personel.aspx页面。我应该如何实现插入?因为在这一步中,请求没有插入到表中,所以我不能将其插入到tbl_personel中。 – Karadous

+0

在Personel.aspx页面中,用户只需从网格视图中选择一个Personel。我对吗? –

+0

不应该有一个“新”按钮。当用户点击它时,另一页将打开。他输入人员信息并点击确定。新增的人员应该出现在gridview中。但不应插入到tbl_personnel中,直到用户单击“保存”按钮。 – Karadous