C# 插入本地数据库C

C# 插入本地数据库C,c#,asp.net,sql-server-ce,C#,Asp.net,Sql Server Ce,我无法在C中插入和选择本地数据库数据 我读过这些文章 所有的代码示例都是相同的,这是我的示例 SqlCeConnection conn = new SqlCeConnection(@"Data Source=|DataDirectory|\PacjenciDB.sdf"); conn.Open(); SqlCeCommand cmd = conn.CreateCommand(); cmd.CommandText="INSERT INTO pacjenci (nazwiskoimie,adres

我无法在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似乎有很多问题


希望您能帮助我设置数据库文件的路径时尝试使用双反斜杠:

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();

上面的代码是正确的,很可能问题出在其他地方,您从那里调用代码。如果数据库连接有问题或数据错误,您应该得到一个异常。由于没有发生错误,也没有添加新记录,因此根本不执行代码

附言

.sdf是Sql Server Compact本地数据库,因此使用System.Data.SqlServerCe是正确的
好的,我在这里猜一猜。是否有可能将PacjenciDB.sdf包含在Visual Studio项目中?是否将“复制到输出”文件夹的属性设置为“始终”或类似设置?似乎每次构建时都会覆盖输出文件夹数据库文件。尝试将数据库放在不在VS project内的文件夹中


顺便说一句,您的代码还可以。

在bin/debug文件夹中查找包含数据的数据库副本


解决方案是不使用| DataDirectory |,而是使用完整路径。

您看到的问题是什么?你有错误吗?谢谢你的回复。否,在执行代码后,我单击ShowTableData并选择*from,DB为空NULL,NULL。。。。我已经尝试了try/catch,但是没有任何错误,我不会访问这样的数据库;为什么不使用Linq To SQL或Linq To Entities?我想用本地数据库创建一个应用程序,LocalDB有。sdf extensionLocaldb不用于应用程序部署,只用于开发。文档的第一页几乎是第一句话。最重要的是,LOCALDB没有SDF扩展,即SQL嵌入式SqlCE,这也是您使用的类。请把基本知识讲清楚。找不到数据库文件。检查数据库的路径。[Data Source=\PacjenciDB.sdf]OP有一个@before数据源,当您有两个反斜杠时它是相同的谢谢您的回复,问题是我的.sdf文件路径有问题,我在bin/debug中有.sdf,在project second文件中有相同名称的.sdf,在VS我在project文件夹中设置了query DB,但是字符串连接被设置为| DataDirectory |感谢您的帮助!非常感谢您的回复,问题出在我的.sdf文件路径上,我在bin/debug和project second.sdf文件中都有.sdf文件,在VS中我在project文件夹中设置了query DB,但字符串连接设置为| DataDirectory |感谢您的帮助!非常感谢您的回复,问题出在我的.sdf文件路径上,我在bin/debug和project second.sdf文件中都有.sdf文件,在VS中我在project文件夹中设置了query DB,但字符串连接设置为| DataDirectory |感谢您的帮助!顺致敬意,