PDS8475
活跃的成员
- 已加入
- 2019年6月25日
- 留言内容
- 41
- 编程经验
- Beginner
我有一个名为Sites的数据库表,其中有SiteName和SiteAddress列
以下代码是按钮单击事件。
发布之前,我有意从连接字符串中删除了数据库密码。
当我单步执行代码时,可以看到连接状态打开。
但是,阅读器保持为空,并且在调用ExecuteReader时,它会跳转到catch块。
catch块给出异常消息"由于未提供一个或多个必需参数的值而失败"
在我看来,该查询是错误的,因此读者无法阅读,但是我看不到它是怎么错的。我尝试将表和列的名称复制并粘贴到查询中,以确保它们正确无误,我也在线检查了其他更新查询,这似乎是正确的。
任何人都可以告诉我发生了什么事,因为我花了两天时间尝试各种不同的方法,但我却无处可寻。
以下代码是按钮单击事件。
发布之前,我有意从连接字符串中删除了数据库密码。
当我单步执行代码时,可以看到连接状态打开。
但是,阅读器保持为空,并且在调用ExecuteReader时,它会跳转到catch块。
catch块给出异常消息"由于未提供一个或多个必需参数的值而失败"
在我看来,该查询是错误的,因此读者无法阅读,但是我看不到它是怎么错的。我尝试将表和列的名称复制并粘贴到查询中,以确保它们正确无误,我也在线检查了其他更新查询,这似乎是正确的。
任何人都可以告诉我发生了什么事,因为我花了两天时间尝试各种不同的方法,但我却无处可寻。
C#:
string sn = SiteName_textBox.Text;
string sa = SiteAddress_textBox.Text;
尝试
{
OleDbDataReader read;
OleDbConnection connection = new OleDbConnection(@"Provider = Microsoft.Jet.OLEDB.4.0; Data Source = |DataDirectory|\Admins.mdb; Jet OLEDB:Database Password = ");
string my_query = "UPDATE Sites SET SiteAddress = @sa WHERE SiteName = @sn";
OleDbCommand comm = new OleDbCommand(my_query, connection);
connection.Open();
read = comm.ExecuteReader();
if (read.HasRows)
{
while (read.Read())
{
comm.Parameters.AddWithValue("@sn", SiteName_textBox.Text);
comm.ExecuteNonQuery();
}
}
read.Close();
connection.Close();
}
catch (Exception ex)
{
MessageBox.Show("Failed due to " + ex.Message);
}
Last edited: