我检查了其他堆栈溢出问题,以找到答案,但我只是找不到解决这个问题的办法。我试图将字符串数据插入到SQL (本地数据库)中。
我可以从数据库中读取数据,但无论是硬编码还是尝试添加参数,我都不能插入数据。
要修改的表称为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
我不知道如何找到Build,它是我在控制台应用程序解决方案中创建的本地数据库,它存储在项目目录中。
我是在“调试”配置,如果这有帮助?
下面是我找到在互联网上的另一个例子
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的服务器资源管理器并查看表时,它尚未更新。
发布于 2011-07-09 10:40:41
您确定INSERT
进入的数据库和使用服务器资源管理器查看的数据库是相同的吗?
记住,我们在这里讨论的是基于文件的DB ( Server )。因此,可以将INSERT
**ing转换成数据库的副本,然后查看(未更改的)原始文件。
bin\Debug
)?检查相应的解决方案项的属性,如下面的屏幕截图(很抱歉它是德语的):
DataDirectory
究竟指向哪里?如果你不确定,暂时用绝对的方法代替它,看看它是否解决了你的问题。确保您的连接字符串确实指向您正在使用的服务器资源管理器所查看的数据库!
发布于 2013-04-02 15:55:09
我想问题就在这里:当您从Visual运行程序时,它连接到调试(或发布)目录中的数据库,而不是连接到项目目录中的数据库。所以,尝试使用完整路径而不是Data Source=|DataDirectory|\LocalDB.sdf
,尝试这样的东西:Data Source=C:\Visual Studio 2008\Projects\MyProject\LocalDB.sdf
。对我起作用了。
发布于 2011-10-28 03:49:19
我检查了解决方案资源管理器连接字符串并粘贴到代码文件中,解决了问题,因此对连接字符串进行更改。
https://stackoverflow.com/questions/6636513
复制相似问题