SqlException: неверное имя столбца, хотя это не столбец - PullRequest
1 голос
/ 06 мая 2019

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

System.Data.SqlClient.SqlException: 'Invalid column name 'Common'.
Invalid column name 'Bug'.
Invalid column name 'sac'.
Invalid column name 'sacas'.'

Моя строка запроса:

string query = "INSERT INTO dbo.RNMCommits ([Function], Date, Severity, ChangedBy, Changes)";
query += string.Format(" VALUES ({0}, {1}, {2}, {3}, {4})", function, date, severity, changedBy, changes);

Я не понимаю исключения, оно говорит, что имена столбцов Common, Bug, sac, sacas недопустимы, но я не использую их в качестве имен столбцов. В заявлении INSERT я заявляю, что он должен использовать ([Function], Date, Severity, ChangedBy, Changes)"; и вставить VALUES VALUES ({0}, {1}, {2}, {3}, {4})", function, date, severity, changedBy, changes), что составляет common, bug, sac and scas.

Эти значения являются строками:

string function = comboBoxEdit_Function.SelectedItem.ToString();
string severity = comboBoxEdit_Severity.SelectedItem.ToString();
string changedBy = textEdit_ChangedBy.Text;
string date = dateEdit_Date.Text;
string changes = memoEdit_Changes.Text;

Весь выполняемый метод:

    private void simpleButton_OK_Click(object sender, EventArgs e)
{
    string function = comboBoxEdit_Function.SelectedItem.ToString();
    string severity = comboBoxEdit_Severity.SelectedItem.ToString();
    string changedBy = textEdit_ChangedBy.Text;
    string date = dateEdit_Date.Text;
    string changes = memoEdit_Changes.Text;

    SqlConnection cnn;
    string connectionString = "Data Source=localhost;Initial Catalog=L3T_Project_Assistent;User ID=xx;Password=xx";
    cnn = new SqlConnection(connectionString);
    cnn.Open();

    string query = "INSERT INTO dbo.RNMCommits ([Function], Date, Severity, ChangedBy, Changes)";
    query += string.Format(" VALUES ({0}, {1}, {2}, {3}, {4})", function, date, severity, changedBy, changes);

    SqlCommand myCommand = new SqlCommand(query, cnn);
    myCommand.ExecuteNonQuery();

    cnn.Close();
}

1 Ответ

2 голосов
/ 06 мая 2019

При передаче значений varchar/nvarchar/text необходимо заключить их в одинарные кавычки:

string.Format(" VALUES ('{0}', '{1}', '{2}', '{3}', '{4}')"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...