我正在尝试为SQL Server CE数据库编写一个简单的插入语句,我的代码完美无缺! ...除了该行实际上没有插入数据库...
我的代码是:
public static int InsertTourCreater(string userName, string password)
{
SqlCeConnection connection = GuidedTourDB.GetConnection(); //Returns connection
string insertStatement =
"INSERT INTO [Tb_Creater] " +
"([User_Name], [Password]) " +
"VALUES (@UserName, @Password)" ;
SqlCeCommand insertCommand = new SqlCeCommand(insertStatement, connection);
insertCommand.Parameters.Add(new SqlCeParameter("@UserName", SqlDbType.NVarChar)).Value = userName;
insertCommand.Parameters.Add(new SqlCeParameter("@Password", SqlDbType.NVarChar)).Value = password;
try
{
connection.Open();
int success = insertCommand.ExecuteNonQuery();
return success;
}
代码运行正常。在调试模式中单步执行,连接打开,值全部正确添加,ExecuteNonQuery()
返回值1,但后来我在服务器资源管理器中查看Tb_Creater
中的表数据,记录不在那里。
我已经刷新,甚至重新启动了visual studio。不在那里。没有例外被抛出。
注意:我正在添加这样的参数而不是AddWithValue()
,因为我担心默认情况下字符串会转换为varchar
(在SQL Server CE中不可用),原因是问题,但代码的运作方式相同。
答案 0 :(得分:0)
我碰巧遇到了这个问题并解决了。来到您的调试输出路径并使用管理员模式运行您的应用程序(exe)。因为我看到了您无法访问sdf文件的日志消息。实际上在visual studio中没有任何错误弹出窗口。