вставка значений из веб-формы, которая имеет поле для значения в другой таблице - PullRequest
0 голосов
/ 29 марта 2019

Я работаю над заданием, в котором я должен заполнить информацию в веб-форме, а затем вставить эту информацию в локальную базу данных, однако одно из полей веб-формы связано с другой таблицей в базе данных, иЯ не уверен, как реализовать объединение, которое может выполнить это.

Моя база данных:

Player - (PK) PlayerID - PlayerName - JerseyNumber

Статистика - (PK) StatId- PlayerId - MatchesPlayed - MatchesWon - Помогает - Цели - Очки

Мои запросы WebForm:

Имя игрока - Раскрывающийся список, Матчи сыграны - Текстовое поле, Матчи Won - Текстовое поле, Ассистенты - Текстовое поле,Цели - текстовое поле, кнопка добавления

Вот что я имею в событии нажатия кнопки

tblStatistic = (DataTable)Cache["tbl"];

            DataRow newRow = tblStatistic.NewRow();
            newRow["StatID"] = 0;

            newRow["MatchesPlayed"] = txtMatchesPlayed.Text;
            newRow["MatchesWon"] = txtMatchesWon.Text;
            newRow["Assists"] = txtAssists.Text;
            newRow["Goals"] = txtGoals.Text;
            tblStatistic.Rows.Add(newRow);

            adapter.InsertCommand = cmdBuilder.GetInsertCommand();
            int rowsAffected = adapter.Update(tblStatistic);

            if (rowsAffected == 1)
            {
                lblMessage.Text = "Stats inserted";
                lblMessage.ForeColor = System.Drawing.Color.Green;
            }
            else
            {
                lblMessage.Text = "Stat not inserted";
                lblMessage.ForeColor = System.Drawing.Color.Red;
            }

полученная ошибка говорит: "PlayerId" не допускает нулевые значения. "

1 Ответ

0 голосов
/ 30 марта 2019
if you want to add row in Statistic  you have to pass id of player as a FK 
just add this line to your code i hope it works
   newRow["PlayerID"] = int.parse(drpPlayer.selectedvalue);

it will be :
tblStatistic = (DataTable)Cache["tbl"];

            DataRow newRow = tblStatistic.NewRow();
            newRow["StatID"] = 0;
            newRow["PlayerID"] = int.parse(drpPlayer.selectedvalue);
            newRow["MatchesPlayed"] = txtMatchesPlayed.Text;
            newRow["MatchesWon"] = txtMatchesWon.Text;
            newRow["Assists"] = txtAssists.Text;
            newRow["Goals"] = txtGoals.Text;
            tblStatistic.Rows.Add(newRow);



            adapter.InsertCommand = cmdBuilder.GetInsertCommand();
            int rowsAffected = adapter.Update(tblStatistic);

            if (rowsAffected == 1)
            {
                lblMessage.Text = "Stats inserted";
                lblMessage.ForeColor = System.Drawing.Color.Green;
            }
            else
            {
                lblMessage.Text = "Stat not inserted";
                lblMessage.ForeColor = System.Drawing.Color.Red;
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...