2012-11-26 63 views
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中不可用),並且會導致問題,但是代碼操作同樣的方式。

+0

你能告訴我們你的連接字符串嗎? –

+0

爲了進一步混淆我,我得到'不能插入重複值'異常,如果我嘗試使用已存在的User_Name的值。 (這是一個獨特的領域。) ,如果我過去我的INSERT語句爲T-SQL編輯器和更換硬編碼值的變量,它運行良好,所以它不應該是一個語法錯誤.. –

+0

私有靜態字符串connectionString = @「Data Source = | DataDirectory | \ GuidedTourDB.sdf; Password = password」; 公共靜態的SqlCeConnection的getConnection() { 的SqlCeConnection連接=新的SqlCeConnection(的connectionString); 返回連接; } 編輯:對不起,我不知道如何粘貼評論代碼...我有一個SELECT語句命令工作正常使用相同的連接。 –

回答

0

我碰巧遇到了這個問題並解決了。進入您的調試輸出路徑並使用管理員模式運行您的應用程序(exe)。因爲我看到了日誌消息,表示您無法訪問sdf文件。其實沒有任何錯誤在Visual Studio中彈出。