2014-03-25 83 views
0

我試圖將任何東西放入我的數據庫。消息框顯示我確實向DB放了1行,但是當我檢查它時 - 什麼也沒有發生。嘗試在數據庫表中插入一行失敗

有人知道治癒嗎?

SqlCeConnection cn = new SqlCeConnection(@"Data Source = Database1.sdf"); 
try 
{ 
    cn.Open(); 
} 
catch (SqlCeException ex) 
{ 
    MessageBox.Show(ex.Message, Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error); 
    Application.ExitThread(); 
} 

SqlCeCommand cm = new SqlCeCommand("INSERT INTO Sentences (Sentence) VALUES ('Sentence')", cn); 
//cm.Parameters.AddWithValue("@Sentence", "Any sentence"); 
try 
{ 
    int rowsAffected = cm.ExecuteNonQuery(); 
    MessageBox.Show((rowsAffected.ToString())); 
} 
catch (Exception) 
{ 
    MessageBox.Show("Insertion Failed"); 
} 
cn.Close(); 
+0

請勿在標題中使用標籤! –

+0

您是否在任何地方提交交易? http://stackoverflow.com/questions/2912112/c-sharp-rollback-sqltransaction-in-catch-block-problem-with-object-accessabi – rie819

+0

你確定嗎?關閉然後重新打開表格。 –

回答

0

嘗試一些不錯的和簡單的代碼。

using (SqlCeConnection con = new SqlCeConnection(strConn)) 
{ 
    try 
    { 
     con.Open(); 
     using (SqlCeCommand cmd = new SqlCeCommand("insert into Table (column1,Column2) values (@Val1, @val2)", con)) 
     { 
      cmd.Parameters.AddWithValue("@Val1", value1); 
      cmd.Parameters.AddWithValue("@Val2", value2); 
      cmd.CommandType = System.Data.CommandType.Text; 
      cmd.ExecuteNonQuery(); 
     } 
     con.Close(); 
    } catch (Exception ex){ 
     //handle any exception here 
    } 
} 
+0

好的,我改變了它,並沒有發生什麼事...... 但是,如果我將使用「新查詢」在我的Visual Studio中,並把它的任何數據,它的作品... 任何線索? – user1798039

0

建議您在連接字符串中使用數據庫文件的完整路徑。像=

@「數據源= C

完整的例子:\用戶\ MYPC \文件\的Visual Studio 2010 \項目\ myProjectFolder的\ MyProject的-1 \ BIN \調試\ MyDatabase.sdf;堅持 安全信息=錯誤;「

嗯解釋here !!

+0

這解決了我的問題.......非常感謝。 – user1798039

+0

如果其他人運行您的代碼,如果它運行在任何其他機器上,任何其他版本的Visual Studio中,或者從除調試器以外的任何其他位置運行,那麼這是行不通的。您應該使用環境變量或部署屬性。 –

+0

@ user1798039如果解決了您的問題,請標記爲答案。 –

相關問題