Я проверил другие вопросы переполнения стека, чтобы найти ответы, но я просто не могу найти решение этой проблемы.Я пытаюсь вставить строковые данные в SQL CE (локальная база данных).
Я могу читать из базы данных, но не могу вставить данные, независимо от того, жестко ли я их кодирую или пытаюсь добавить их с параметрами.
Таблица, которую нужно изменить, называется users
.Он имеет 3 столбца: ID
, name
, email
.
Вот код, который я использую:
string connection = Properties.Settings.Default.LocalDBConnectionString;
using (var con = new SqlCeConnection(connection))
{
con.Open();
// (I also tried adding with parameters but couldn't get it working.)
using (var com = new SqlCeCommand("INSERT INTO users (name, email) " +
"VALUES (N'jimmy', N'email@jim.com')", con))
{
int numRowsAffected = com.ExecuteNonQuery();
// This returns '1 row affected' but doesn't actually update the database
Console.WriteLine(numRowsAffected);
Console.ReadKey();
}
}
Хотя консоль выводит 1
, потому что 1Строка влияет, когда я возвращаюсь в базу данных и проверяю, не вставлены ли новые данные.
Я читал этот урок , но не работает только чтение, вставка или запись.
Я также нашел этот похожий вопрос переполнения стека, но, используя параметры, все равно не смог заставить его работать.
Редактировать:
Моя строка подключения:
Data Source=|DataDirectory|\LocalDB.sdf
Я не знаю, как найти параметры сборки, это локальная база данных, созданная в консольном приложении. Она хранится в каталоге проекта.
Я нахожусь в конфигурации «Отладка»если это поможет?
Вот еще один пример, который я нашел в Интернете :
SqlCeConnection con = new SqlCeConnection(Properties.Settings.Default.LocalDBConnectionString);
con.Open();
SqlCeCommand comInsert = new SqlCeCommand ("INSERT INTO users(name, email) VALUES('value 1', 'value 2')", con);
comInsert.ExecuteNonQuery();
SqlCeCommand comSelect = new SqlCeCommand("SELECT * FROM users", con);
SqlCeDataReader reader = comSelect.ExecuteReader();
while (reader.Read())
{
Console.WriteLine("{0} {1}", reader["name"], reader["email"]);
Console.ReadKey();
}
con.Close();
Я просто скопировал и вставил это, и изменил основнойпеременные.В этом примере данные временно вставляются, но когда я захожу в обозреватель серверов Visual Studio и просматриваю таблицу, они не обновляются.