在我开始之前,我会让你知道,在我考虑自己发布问题之前,我已经尝试了以前问题和其他网站上已经建议的所有内容。碰巧的是,似乎没有任何效果,我对此感到厌烦。
作为一些背景信息,这是针对我的 Computing A2 项目的,所以我现在有点卡住了 - 即我不能理想地改变我的代码负载。
无论如何,关于这个问题......我在我的代码中使用 SQLCe 从各种表中读取并写入一个。到目前为止,从表中读取的代码工作正常,所以首先解决任何连接问题。我正在努力的代码如下:
string connectionString = Properties.Settings.Default.BookingSystemDatabaseConnectionString;
using (SqlCeConnection myConnection = new SqlCeConnection(connectionString))
{
myConnection.Open();
try
{
string commandStr = "INSERT INTO bookings(username, room, time) VALUES(@username, @room, @time)";
SqlCeCommand myCommand = new SqlCeCommand(commandStr);
//Passes parameters into SQL command.
myCommand.Parameters.AddWithValue("username", StaticUser.StudentUser.username);
myCommand.Parameters.AddWithValue("room", roomBox.Text);
myCommand.Parameters.AddWithValue("time", timeBox.Text);
//Executes SQL command. Returns the number of affected rows (unecessary for my purposes; a bi-product if you will).
myCommand.ExecuteNonQuery();
}
catch
{
System.Windows.Forms.MessageBox.Show("Could not write new booking to database. This is likely because the database cannot be reached.", "Error");
Program.AccessError = true;
}
myConnection.Close();
}
这只是我试图解决我遇到的问题的众多方法之一。我也探索过:
myCommand.Parameters.Add(new SqlCeParameter("username", StaticUser.StudentUser.username));
传递参数......和另一种现在让我逃避的方法(我认为使用“.Value = StaticUser.StudentUser.username”)。此外,我尝试使用命令的“使用”语句来保存我自己关闭连接(我最终可能会使用使用“使用”的解决方案)。最后(尽管这不是按时间顺序排列的回忆),我尝试了:
SqlCeCommand myCommand = new SqlCeCommand("INSERT INTO bookings(username, room, time) VALUES(@username, @room, @time)", myConnection)
再次,当然,无济于事。
为了突出我遇到的问题的实际症状:代码似乎运行良好;单步执行我在上面粘贴的完整方法表明没有发现任何错误(当然,消息框没有出现——我后来意识到单步执行可以说是一个不必要的过程),在我提到的其他方法中,同样的事情发生。那么,问题是表“bookings”实际上并没有被更新。
所以,我的问题,为什么?
我没有做明显的检查并检查 Debug 文件夹以获取更新的数据库。