我无法在C#中插入并选择本地数据库数据。
我已阅读这些文章
所有代码示例都相同,这是我的样本。
SqlCeConnection conn = new SqlCeConnection(@"Data Source=|DataDirectory|\PacjenciDB.sdf");
conn.Open();
SqlCeCommand cmd = conn.CreateCommand();
cmd.CommandText="INSERT INTO pacjenci (nazwiskoimie,adres,skierowany,opis) values (@nazwiskoimie,@adres,@skierowany,@opis)";
cmd.Parameters.AddWithValue("@nazwiskoimie", txtnazwiskoimie.Text);
cmd.Parameters.AddWithValue("@adres", txtadres.Text);
cmd.Parameters.AddWithValue("@skierowany", txtskierowany.Text);
cmd.Parameters.AddWithValue("@opis", txtopis.Text);
cmd.ExecuteNonQuery();
conn.Close();
有人能告诉我我做错了吗?
我已尝试过大量有关插入数据的示例,但它无法正常工作。
我可以管理.MDF
,但.SDF
似乎很成问题。
希望你帮助我
答案 0 :(得分:1)
好的,我会在这里猜一猜。 PacjenciDB.sdf是否包含在Visual Studio项目中?您是否将“复制到输出文件夹”属性设置为“始终”或类似的东西?似乎每次进行构建时都可能会覆盖输出文件夹数据库文件。尝试将数据库放在不在VS项目中的文件夹中。
顺便说一下,你的代码还行。
答案 1 :(得分:1)
在bin / debug文件夹中查找包含数据的数据库副本。
解决方法是不使用| DataDirectory |,而是使用完整路径。
答案 2 :(得分:0)
上面的代码是正确的,很可能问题出在其他地方,你从那里调用代码。如果数据库连接出现问题或数据错误 - 您应该获得异常。由于没有发生错误而且没有添加新记录 - 代码根本没有执行。
P.S。
.sdf是一个Sql Server Compact本地数据库,因此使用System.Data.SqlServerCe是正确的 http://msdn.microsoft.com/en-us/library/system.data.sqlserverce(v=vs.100).aspx
答案 3 :(得分:-1)
在设置数据库文件的路径时尝试使用双反斜杠:
string dbPath + "Data Source=C:\\DataDirectory\\PacjenciDB.sdf";
SqlCeConnection conn = new SqlCeConnection(dbPath);
conn.Open();
SqlCeCommand cmd = conn.CreateCommand();
cmd.CommandText="INSERT INTO pacjenci (nazwiskoimie,adres,skierowany,opis) values (@nazwiskoimie,@adres,@skierowany,@opis)";
cmd.Parameters.AddWithValue("@nazwiskoimie", txtnazwiskoimie.Text);
cmd.Parameters.AddWithValue("@adres", txtadres.Text);
cmd.Parameters.AddWithValue("@skierowany", txtskierowany.Text);
cmd.Parameters.AddWithValue("@opis", txtopis.Text);
cmd.ExecuteNonQuery();
conn.Close();