Почему этот код C# вставляет данные в неправильный столбец таблицы SQLite? - PullRequest
1 голос
/ 30 мая 2020

ПРИМЕЧАНИЕ : Большое спасибо пользователю @David. Проблема решена. Это была моя ошибка. См. Раздел ОБНОВЛЕНИЕ ниже.

Среда : Microsoft.Data.Sqlite , VS2019 v16.6.0, Windows10 Pro v1903

Вопрос : почему следующий код вставляет значение "05-29-2020" в последний столбец DocContent? Мне нужно вместо него вставить TestContent. Что мне может здесь не хватать и как это можно решить?

Примечание : при нажатии кнопки MyAddData() вызывает AddData()

private void MyAddData()
{
    for (Int16 t=0; t<5; t++)
        MathDocsContext.AddData("Test" + t + "Author", "Test" + t + "Title", "Test Content");
}

public static void AddData(string sAuthor, string sTitle, string sDocContent)
{
    string SQLiteDbpath = System.IO.Path.Combine(GetDeployedFilePath, "SQLiteDb.db");

    using (SqliteConnection db = new SqliteConnection($"Filename={SQLiteDbpath}"))
    {
        db.Open();

        using (SqliteCommand insertCommand = new SqliteCommand())
        {
            insertCommand.Connection = db;

            // Use parameterized query to prevent SQL injection attacks
            insertCommand.CommandText = "INSERT INTO Docs (Author, Title, DateModified, DocContent) VALUES (@Author, @Title, @DateModified, @DocContent);";
            insertCommand.Parameters.AddWithValue("@Author", sAuthor);
            insertCommand.Parameters.AddWithValue("@Title", sTitle);
            insertCommand.Parameters.AddWithValue("@DateModified", "05-29-2020");
            insertCommand.Parameters.AddWithValue("@DocContent", sDocContent);

            insertCommand.ExecuteNonQuery();
        }

        db.Close();
    }
}

Таблица SQLite: данные, вставленные из кода выше

Примечание : DocId - столбец идентификатора первичного ключа с автоинкрементом

ОБНОВЛЕНИЕ :

Мои извинения. Я исправился. Как заявил пользователь @David:

Может быть множество вещей вне контекста кода, который мы рассматриваем.

Значение Test Content в MyAddData() метод не является значением; вместо этого здесь передается переменная со значением 05-29-2020.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...