「無法複製文件 」j:\用戶\加里\文檔\ Visual工作室 2010 \項目\ MyApp01 \ MyApp01 \ MyApp01.mdf「 到」 斌\調試\ MyApp01.mdf 「 無法訪問該文件 '本\調試\ MyApp01.mdf',因爲它 正在使用由另一個進程的進程。」
和
「無法刪除文件」j:\ users \ gary \ documents \ visual studio 2010 \ Projects \ MyApp01 \ MyApp01 \ bin \ Debug \ MyApp01.mdf「。進程 無法訪問文件'j:\ users \ gary \ documents \ visual Studio 2010 \ Projects \ MyApp01 \ MyApp01 \ bin \ Debug \ MyApp01.mdf',因爲它被另一個進程使用爲 。「
我一直在努力讓這個問題已經得到解決了近一個星期,但仍無法捉摸一下什麼是錯的。
今天,我已經創建了一個名爲新項目MyApp01 &連接新2列數據庫的同名,我編輯屬性將「複製到輸出目錄」狀態從「複製總是」更改爲「複製如果更新」我的理解是存儲在MyApp01文件夾中的數據庫創建在第一次訪問它時在MyApp01\bin\Debug\
文件夾中的測試版本,然後只有在數據庫佈局發生更改時才被覆蓋。是否正確?如果是這樣,爲什麼我要獲取這些文件似乎暗示系統試圖替換數據庫的\ bin \ Debug \版本的錯誤?
我第一次運行應用程序&它似乎工作得很好,我的數據庫更新了三條記錄,這些記錄顯示在Form2
和我退出成功。但是,在VS2010中,我使用服務器資源管理器來顯示錶數據,並將數據庫顯示爲空,因此我相信它暗示它正在查看MyApp01文件夾&中的版本,而不是MyApp01\bin\Debug\
文件夾中的版本。因此我再次運行程序,這是我得到這些錯誤的地方。
所以,再一次,是我的數據庫被複制,並保持正確的方式理解,如果是的話(或者如果不!)爲什麼我收到這些錯誤告訴我,該系統試圖取代\bin\Debug\
版本的數據庫?
這是我的代碼:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
namespace MyApp01
{
public partial class Form1 : Form
{
int myCount;
string myDBlocation = @"Data Source=MEDESKTOP;AttachDbFilename=|DataDirectory|\MyApp01.mdf;Integrated Security=True;User Instance=False";
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
myCount++;
//Insert Record Into SQL File
myDB_Insert();
}
private void button2_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Show();
}
private void button3_Click(object sender, EventArgs e)
{
//Quit
myDB_Close();
this.Close();
}
void myDB_Insert()
{
using (SqlConnection myDB = new SqlConnection(myDBlocation))
using (SqlCommand mySqlCmd = myDB.CreateCommand())
{
mySqlCmd.CommandText = "INSERT INTO MyAppTbl(MyData) VALUES(@MyValue)";
mySqlCmd.Parameters.AddWithValue("@MyValue", myCount);
myDB.Open();
MessageBox.Show("State = " + myDB.State);
mySqlCmd.ExecuteNonQuery();
myDB.Close();
MessageBox.Show("State = " + myDB.State);
}
return;
}
void myDB_Close()
{
using (SqlConnection myDB = new SqlConnection(myDBlocation))
using (SqlCommand mySqlCmd = new SqlCommand())
{
myDB.Close();
}
return;
}
}
}
你的問題不清楚。 – 2012-02-13 17:57:47
有兩個問題,首先,我正確地說明VS2010在調試時需要拷貝和維護數據庫的方式,其次,如果我對問題1正確,那麼爲什麼系統試圖刪除並替換我的調試數據庫的版本?基本上,爲什麼我會得到這些錯誤?!? – 2012-02-13 18:42:37
您使用的是實際的SQL Server數據庫文件還是SQL Server Compact? – 2012-02-13 20:13:11