2012-11-18 106 views
2

我試圖執行一個SQL INSERT命令到使用C#和Visual Studio我的MS Access數據庫2012C#OLEDB SQL插入命令

但在那之後,當我打開我的Access數據庫,沒有更新,甚至insert命令可以成功創建彈出窗口後顯示成功executeNonQuery()

請問如何將此插入到SQL命令的工作?

這是我的代碼

OleDbCommand cmd = new OleDbCommand(); 
cmd.CommandText = @"INSERT INTO STUDENT(CHI_NAME, ENG_NAME, NICK_NAME, 
             BD_YYYY, BD_MM, BD_DD, 
             HOME_TEL, NO_OF_CHILD, PARENT_EMAIL, 
             SEC_EMAIL, STUDENT_ADDR, DISTRICT, 
             MOTHER_NAME, MOTHER_TEL, MOTHER_OCCU, 
             FATHER_NAME, FATHER_TEL, FATHER_OCCU, 
             E_NAME, E_TEL, E_RELATIONSHIP, REMARKS) 
        VALUES(@NEW_CHI_NAME, @NEW_EN G_NAME, @NEW_NICK_NAME, 
          @NEW_BD_YYYY, @NEW_BD_MM .....);" 

cmd.CommandType = CommandType.Text; 

cmd.Parameters.AddWithValue("@NEW_CHI_NAME", chi_name); 
cmd.Parameters.AddWithValue("@NEW_ENG_NAME", eng_name); 
cmd.Parameters.AddWithValue("@NEW_NICK_NAME", nick_name);    
cmd.Parameters.AddWithValue("@NEW_BD_YYYY", bd_year); 
cmd.Parameters.AddWithValue("@NEW_BD_MM", bd_month); 
.... 

cmd.Connection = connection; 
connection.Open(); 
cmd.Transaction = connection.BeginTransaction(); 
int rows= cmd.ExecuteNonQuery(); 

if(rows > 0) 
{ 
    MessageBox.Show("Insert New Client Success!"); 
} 
else 
{ 
    MessageBox.Show("Insert New Client Failed!"); 
} 

cmd.Transaction.Commit(); 
connection.Dispose(); 
connection.Close(); 
+1

它不會傷害顯示連接字符串也。 – ethorn10

+5

另請參見:我會**首先** **交易,**顯示消息框之前**! –

+0

您有多個Access數據庫的副本嗎?從您的解釋中,很可能您正在更新與正在驗證的數據庫不同的數據庫。按照ethron10的建議,檢查你的連接字符串 –

回答

2

Solution Explorer,右鍵單擊您的Access文件,選擇Properties,並設置Copy To Output DirectoryCopy if Newer

+0

是否出現未引起更新的問題經權威機構來訪問? –

+0

沒有,這個問題是因爲每次您調試應用程序,您的Access數據庫的副本複製到projectFolder \ BIN \ debug文件夾中所有的變化發生在該文件中,所以你的原始訪問不會顯示任何東西。更重要的是,因爲每次你調試數據庫被改寫的,你不會看到調試之間的變化。但是,如果您打開數據庫projectFolder \ BIN \調試的內部,而不是調試,你會看到的變化。一個更永久的方式,而不是複製更新會簡單地部署你的應用程序 – Martheen

+0

它是否意味着DB的更改被提交到存儲在DB中的DB調試文件而不是項目文件夾中的數據庫?似乎將數據庫拖入僅用於數據庫連接的項目文件夾並應用表架構 –

0

進入Debug目錄,你會發現你ACCDB文件複製有。打開它並驗證。