2015-03-02 66 views
-2

我試圖從我的c#應用程序中將數據保存到數據庫中。我通過項目屬性在資源中添加了我的數據庫,複製了我的代碼中生成的字符串,並將「複製到輸出目錄」從「複製始終」更改爲「不復制」。當我運行它,它給了我這個錯誤:將「複製到輸出目錄」從「始終複製」更改爲「不復制」時發生錯誤

找不到文件 'F:\ PROVA \ PROVA \ BIN \調試\資源\ Student.accdb'

但該文件是存在的。

任何幫助?

private void button1_Click(object sender, EventArgs e) 
{ 
    OleDbConnection connection = new OleDbConnection(); 
    connection.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Resources\Student.accdb;Persist Security Info=True"; 

    connection.Open(); 

    OleDbCommand command = new OleDbCommand(); 

    command.Connection = connection; 

    command.CommandText = "INSERT INTO Student(Student_ID, First_Name) VALUES ('" + textBox1.Text + "','" + textBox2.Text + "')"; 

    command.ExecuteNonQuery(); 

    MessageBox.Show("Data saved"); 

    connection.Close(); 
} 
+0

你爲什麼要改變它'「不要複製」' ? – 2015-03-02 16:56:42

+0

因爲我想保存我在文本框中輸入的內容。如果我將其設置爲「始終複製」,則插入的數據將不會保存。我可以檢索它們,但是當我關閉它時,數據不會被保存。至少這是發生在我身上的事情 – Marco 2015-03-02 17:00:42

+0

通常當數據未保存在數據庫中時,這是因爲沒有明確調用或使用「COMMIT」命令。 。 – MethodMan 2015-03-02 17:03:00

回答

1

我的心理調試的力量告訴我,你檢查的源代碼文件Student.accdb,但你沒有在你的編譯的項目實際上位於二進制文件進行檢查。

我建議將下面的路徑完全複製到Windows資源管理器中,看看Student.accdb實際上是否存在。不考慮整個路徑。

F:\Prova\Prova\bin\Debug\Resources 

如果你不想當你建立要覆蓋該文件嗎,最好的解決辦法是改變Do Not CopyCopy if Newer

相關問題