0

私は2つのテーブルを持っています。

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

FKrfequestID は tbl_request への外部キーです。tbl_request レコードを表示する Requests.aspx ページにグリッド ビューがあります。このページにも「新着商品」ボタンがあります。ユーザーがこのボタンをクリックすると、RequestInsert.aspx ページが開きます。このページで、ユーザーは RequestCode などのデータを入力し、[次へ] ボタンをクリックして、リクエストに関連する担当者を示すグリッドビューを含む Personel.aspx ページに移動します。このページで、ユーザーはリクエストに関連する担当者を定義する必要があります。プロセス全体が終了したら、ユーザーは「保存」ボタンを押します。ユーザーが「保存」ボタンをクリックすると、両方のテーブルが更新されます。Personel.aspx ページを実装するにはどうすればよいですか?

personaspx.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();
        }
    }
}

編集モードを実装するにはどうすればよいですか? このモードで、ユーザーが人員を削除または追加できるようにしますか?

4

1 に答える 1

0

Ok。ユーザーがクリックしたときに編集されるレコードのsessionを保存するためにを使用する必要があります。その後、レコードを編集できる新しいページにユーザーを再誘導します。tbl_Request.PKRequestIDEdit buttonEdit_Requests_Personnel.aspx

于 2012-05-27T08:44:03.903 に答える