Действительно трудно понять, что происходит, не видя ваш код, но я сделаю некоторые предположения:
Скажем, я создаю новое приложение Windows Forms, затем Project-> Add New Item-> Local Database
Это создаст пустой файл .SDF SQL Server Compact Edition в вашем проекте. Вы можете редактировать этот файл из Visual Studio или SQL CE Query Analyzer.
Затем в Database Explorer я создаю таблицу («testtable») и присваиваю ей столбец «ID» и «VALUE».
Это создаст пустую таблицу в вашем файле .SDF. Это довольно плохие имена, но для целей тестирования мы можем их использовать.
Можете ли вы предоставить мне шаги, чтобы просто добавить строку в базу данных из кода?
System.Data.SqlServerCe
предоставляет методы для управления файлами .SDF. Чтобы добавить строку в тестовую таблицу:
using (SqlCeConnection myConnection = new SqlCeConnection(@"Data Source=Path\To\Your\SDF\file.sdf;"))
using (SqlCeCommand myCmd = myConnection.CreateCommand())
{
myCmd.CommandType = CommandType.Text;
myCmd.CommandText = "INSERT INTO testtable (ID, [VALUE]) VALUES (1, whatever)";
myConnection.Open();
myCmd.ExecuteNonQuery();
}
Знайте, что Path\To\Your\SDF\file.sdf
может быть не тем, что вы думаете; Visual Studio по умолчанию копирует файлы проекта в выходной путь сборки проекта (например, путь \ к \ вашему \ проекту \ bin \ Debug \ file.sdf). Если вы измените встроенный файл, а затем перестроите свой проект, исходный файл .SDF будет повторно скопирован в ваш путь вывода, уничтожив все изменения, которые вы внесли в файл проекта. Если это не то, чего вы хотите, вам придется объяснить, чего вы пытаетесь достичь.
Например, чтобы изменения применялись только к встроенному файлу проекта, измените свойство VS «Копировать в выходной каталог» файла данных в VS на «Копировать, если новее».