我写了一个非常小的C#程序,使用非常小的SQL Server数据库,纯粹是为了一些学习&测试目的。数据库被用在这个新的项目中,而不是其他地方。但是,我在运行程序无法运行的调试时遇到问题,因为数据库“正在被另一个进程使用”。数据库正在被另一个进程使用......但是什么进程?
如果我重新启动我的机器,它会重新工作,然后几个测试运行后,我会再次得到了同样的问题。
我发现报道在互联网上很多很多类似的问题,但找不到任何明确的答案如何解决这个问题。首先,如何找出使用我的.mdf & .ldf文件的“其他进程”?那么,我怎么才能让这些不被发布的文件发布,以便一次又一次地阻止这种发生的时间?!?
我是新来的VS2010,SQL服务器& C#,所以请你给我任何答复相当的描述!
这是我的代码,正如你所看到的,你不能得到任何更基本的东西,我当然不应该遇到这么多问题!
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();
}
}
}
第一次运行应用程序时是否收到相同的错误消息?如果第二次出现此错误,我猜你的应用程序没有正确关闭数据库连接。 – 2012-02-08 14:45:47
当我第一次运行程序时,它工作正常,并继续工作,但我正在调试并停止程序,而没有按时逻辑地完成它。虽然没有出现这种情况,但它可能与我在不关闭数据库的情况下停止调试有关。虽然VS2010不会处理?!? – 2012-02-08 14:56:43