ПРИМЕЧАНИЕ : Большое спасибо пользователю @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
.