Почему этот код C# вставляет данные в неправильный столбец таблицы SQLite?
ПРИМЕЧАНИЕ: Большое спасибо пользователю@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
.