0
我想为SQL Server CE数据库编写一个简单的插入语句,并且我的代码完美地工作! ......除了该行实际上并没有得到插入到数据库...SqlCeCommand简单插入不插入
我的代码是:
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;
}
代码运行正常。通过在调试模式下步,打开连接,价值观都得到正确添加,与1 ExecuteNonQuery()
回报价值,但后来我去看看表数据Tb_Creater
在我的服务器资源管理器,记录是不存在的。
我已经刷新,甚至重新启动Visual Studio中。不在那里。没有例外被抛出。
注意:我添加的参数是这样的,而不是AddWithValue()
,因为我担心字符串会转换为varchar
(在SQL Server CE中不可用),并且会导致问题,但是代码操作同样的方式。
你能告诉我们你的连接字符串吗? –
为了进一步混淆我,我得到'不能插入重复值'异常,如果我尝试使用已存在的User_Name的值。 (这是一个独特的领域。) ,如果我过去我的INSERT语句为T-SQL编辑器和更换硬编码值的变量,它运行良好,所以它不应该是一个语法错误.. –
私有静态字符串connectionString = @“Data Source = | DataDirectory | \ GuidedTourDB.sdf; Password = password”; 公共静态的SqlCeConnection的getConnection() { 的SqlCeConnection连接=新的SqlCeConnection(的connectionString); 返回连接; } 编辑:对不起,我不知道如何粘贴评论代码...我有一个SELECT语句命令工作正常使用相同的连接。 –