Tôi đã viết một chương trình C# rất nhỏ, sử dụng cơ sở dữ liệu SQL Server rất nhỏ, hoàn toàn cho một số mục đích thử nghiệm &. Cơ sở dữ liệu được sử dụng trong một dự án mới này và không có nơi nào khác. Tuy nhiên, tôi đang gặp sự cố khi chạy Gỡ lỗi trong đó chương trình sẽ không chạy, vì cơ sở dữ liệu "đang được sử dụng bởi một quá trình khác".Cơ sở dữ liệu đang được sử dụng bởi một quy trình khác ... nhưng quy trình nào?
Nếu tôi khởi động lại máy, nó sẽ hoạt động trở lại và sau một vài lần chạy thử, tôi sẽ gặp lại vấn đề tương tự.
Tôi đã tìm thấy nhiều, nhiều sự cố tương tự được báo cáo trên Internet, nhưng không tìm thấy câu trả lời dứt khoát nào về cách giải quyết vấn đề này. Thứ nhất, làm cách nào để tìm hiểu "quy trình khác" đang sử dụng tệp .mdf & .ldf của tôi? Sau đó, làm thế nào để tôi có được những tập tin này phát hành & không được tổ chức để ngăn chặn điều này xảy ra thời gian sau khi thời gian sau khi thời gian?!?
Tôi mới dùng VS2010, SQL Server & C#, vì vậy hãy mô tả khá rõ trong bất kỳ câu trả lời nào bạn cho tôi !!!
Đây là mã của tôi, như bạn có thể thấy, bạn không thể có được bất cứ điều gì cơ bản hơn nhiều, tôi chắc chắn không nên chạy vào rất nhiều vấn đề !!!
namespace MySqlTest
{
public partial class Form1 : Form
{
SqlConnection myDB = new SqlConnection(@"Data Source=MEDESKTOP;AttachDbFilename=|DataDirectory|\SqlTestDB.mdf;Initial Catalog=MySqlDB;Integrated Security=True");
SqlDataAdapter myDA = new SqlDataAdapter();
SqlCommand mySqlCmd = new SqlCommand();
string mySQLcmd;
int myCount;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("myDB state = " + myDB.State.ToString());
//Open SQL File
myDB.Open();
MessageBox.Show("myDB state = " + myDB.State.ToString());
}
private void button2_Click(object sender, EventArgs e)
{
myCount++;
MessageBox.Show("myCount = " + myCount.ToString());
//Insert Record Into SQL File
mySqlCmd.Connection = myDB;
mySqlCmd.CommandText = "INSERT INTO Parent(ParentName) Values(myCount)";
myDA = new SqlDataAdapter(mySqlCmd);
mySqlCmd.ExecuteNonQuery();
}
private void button3_Click(object sender, EventArgs e)
{
//Read Record From SQL File
}
private void button4_Click(object sender, EventArgs e)
{
//Read All Records From SQL File
}
private void button5_Click(object sender, EventArgs e)
{
//Delete Record From DQL File
}
private void button6_Click(object sender, EventArgs e)
{
MessageBox.Show("myDB state = " + myDB.State.ToString());
//Close SQL File
myDB.Close();
MessageBox.Show("myDB state = " + myDB.State.ToString());
}
private void button7_Click(object sender, EventArgs e)
{
//Quit
this.Close();
}
}
}
Bạn có nhận được thông báo lỗi tương tự khi bạn chạy ứng dụng của mình lần đầu không? Nếu bạn nhận được lỗi này lần thứ hai trở đi, tôi đoán ứng dụng của bạn không đóng kết nối db đúng cách. –
Khi tôi lần đầu tiên chạy chương trình, nó hoạt động tốt và tiếp tục hoạt động, nhưng tôi đang gỡ lỗi và dừng chương trình mà không hoàn thành một cách hợp lý đôi khi. Có vẻ như không phải là một điểm thường xuyên mà tại đó điều này bắt đầu xảy ra mặc dù, nhưng có lẽ nó được kết nối với tôi ngừng gỡ lỗi mà không đóng DB. VS2010 sẽ không xử lý điều đó mặc dù?!? –