Основная деталь в ASP.NET

У меня две таблицы.

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

FKrfequestID - это внешний ключ для tbl_request. У меня есть сетка на странице Requests.aspx, которая показывает записи tbl_request. На этой странице также есть кнопка «Новый элемент». Когда пользователь нажимает эту кнопку, открывается страница RequestInsert.aspx. На этой странице пользователь вводит некоторые данные, такие как RequestCode, нажимает кнопку «Далее» и переходит на страницу Personel.aspx, которая содержит сетку, которая показывает персонал, связанный с запросом. На этой странице пользователь должен указать персонал, связанный с запросом. Когда весь процесс завершается, пользователь нажимает кнопку «Сохранить». Обе таблицы будут обновлены, когда пользователь нажмет кнопку «Сохранить». Как я могу реализовать страницу Personel.aspx?


person Karadous    schedule 25.05.2012    source источник
comment
Разместите код, который вы пробовали.   -  person Krishanu Dey    schedule 25.05.2012
comment
Ваш вопрос немного сбивает с толку. Когда пользователь хочет добавить новую запись в tbl_Reque ... и в базе данных, пока пользователь не подтвердит весь процесс ... создают для меня путаницу. Просьба уточнить.   -  person Krishanu Dey    schedule 25.05.2012
comment
Редактировал вопрос Кришану Дей.   -  person Karadous    schedule 25.05.2012
comment
Вы можете опубликовать HTML-код Personel.aspx?   -  person Krishanu Dey    schedule 25.05.2012


Ответы (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();
            }
        }
    }
person Krishanu Dey    schedule 25.05.2012
comment
Я сделал это. Но я не знаю, как реализовать страницу Personel.aspx. Как мне реализовать Insert? Поскольку на этом этапе запрос не вставляется в таблицу, я не могу вставить его в tbl_personel. - person Karadous; 25.05.2012
comment
Здесь, на странице Personel.aspx, пользователю просто нужно выбрать сотрудника в представлении сетки. Я прав? - person Krishanu Dey; 25.05.2012
comment
Нет, должна быть новая кнопка. когда пользователь нажимает на нее, откроется другая страница. Он вводит информацию о персонале и нажимает кнопку ОК. новый добавленный персонал должен появиться в сетке. Но не следует вставлять в tbl_personnel, пока пользователь не нажмет кнопку «Сохранить». - person Karadous; 25.05.2012
comment
PKPersonID & PKRequestID создается автоматически? - person Krishanu Dey; 25.05.2012
comment
PKPersonnelID создается автоматически. Но я генерирую PKRequestID вручную. оба имеют GUID. - person Karadous; 26.05.2012
comment
Большое спасибо Кришану. У меня осталась еще одна проблема. Как реализовать редактирование записей tbl_personnel? - person Karadous; 26.05.2012
comment
Задайте отдельный вопрос для Как реализовать редактирование записей tbl_personnel? - person Krishanu Dey; 26.05.2012
comment
Пожалуйста, сообщите мне, оставив здесь комментарий после вопроса о Как реализовать редактирование записей tbl_personnel? - person Krishanu Dey; 26.05.2012
comment
Я задал новый новый вопрос кришану. Вот ссылка. stackoverflow.com/questions/10772139 / - person Karadous; 27.05.2012