Есть проблема с вставкой синтаксического предложения Как это исправить? - PullRequest
0 голосов
/ 25 января 2019

Здравствуйте, ребята, я работаю на веб-сайте, у меня проблема с моим предложением синтаксиса вставки. Может ли кто-нибудь помочь мне найти проблему, с которой я столкнулся в предложении?

using (OleDbConnection sqlCon = new OleDbConnection(connectionStr))
            {
                sqlCon.Open();
                string query = "INSERT INTO SoccerAchievements (PlayerCode,TeamCode,Achievement,When) VALUES (@PlayerCode,@TeamCode,@Achievement,@When)";
                OleDbCommand sqlCmd = new OleDbCommand(query, sqlCon);
                sqlCmd.Parameters.AddWithValue("@PlayerCode", (AdminBook.FooterRow.FindControl("txtPlayerCodeFooter") as TextBox).Text.Trim());
                sqlCmd.Parameters.AddWithValue("@TeamCode", (AdminBook.FooterRow.FindControl("txtTeamCodeFooter") as TextBox).Text.Trim());
                sqlCmd.Parameters.AddWithValue("@Achievement", (AdminBook.FooterRow.FindControl("txtAchievementFooter") as TextBox).Text.Trim());
                sqlCmd.Parameters.AddWithValue("@When", (AdminBook.FooterRow.FindControl("txtWhenFooter") as TextBox).Text.Trim());
                sqlCmd.ExecuteNonQuery();
                PopulateGridView();
                lblSuccessMessage.Text = "נתון חדש נוסף בהצלחה";
                lblErrorMessage.Text = "";
            }
        }
    }

Я хочу, чтобы он был вставлен в мою базу данных, и это дает мне ошибку, что у меня есть синтаксическая проблема с моим предложением вставки

1 Ответ

0 голосов
/ 25 января 2019

Согласно Доступ к списку зарезервированных слов , WHEN используется как зарезервированное слово, поэтому вам нужно заключить его в квадратные скобки:

string query = "INSERT INTO SoccerAchievements (PlayerCode, TeamCode, Achievement, [When]) 
                VALUES (@PlayerCode, @TeamCode, @Achievement, @When)";

Также вам необходимо использовать Add() вместо AddWithValue() для предоставления значений параметров.

...