C# 更新MSACCESS中的数据
我有以下代码来更新学生记录。 它正在工作,没有任何错误或异常,但没有更新记录 我不明白为什么会这样C# 更新MSACCESS中的数据,c#,wpf,ms-access,oledbcommand,C#,Wpf,Ms Access,Oledbcommand,我有以下代码来更新学生记录。 它正在工作,没有任何错误或异常,但没有更新记录 我不明白为什么会这样 private void btnUpdate_Click(object sender, EventArgs e) { String query = "Update Student Set StdName=@Name , Marks=@Marks where RollNo=@RollNo"; OleDbCommand cmd = new OleDbComman
private void btnUpdate_Click(object sender, EventArgs e)
{
String query = "Update Student Set StdName=@Name , Marks=@Marks where RollNo=@RollNo";
OleDbCommand cmd = new OleDbCommand(query, cn);
cmd.Parameters.Add("@RollNo", OleDbType.VarChar, 10);
cmd.Parameters.Add("@Name", OleDbType.VarChar, 10);
cmd.Parameters.Add("@Marks", OleDbType.Integer);
cmd.Parameters["@RollNo"].Value = txtRollNo.Text;
cmd.Parameters["@Name"].Value = txtName.Text;
cmd.Parameters["@Marks"].Value = Convert.ToInt16(txtMarks.Text);
try
{
cmd.ExecuteNonQuery();
MessageBox.Show("Record Update Successfully");
ClearFields();
}
catch (OleDbException ex)
{
MessageBox.Show(ex.Message);
}
}
它显示消息“记录更新成功”,但不更新记录。
当我在datagrid视图中显示所有记录时。当使用OLEDB参数时,参数纯粹是位置性的-它会忽略给定参数的名称,并将第一个值指定给第一个参数,将第二个值指定给第二个参数,依此类推 因此,我认为要实现上述功能,您需要更改创建参数的顺序,以反映使用参数的顺序:
cmd.Parameters.Add("@Name", OleDbType.VarChar, 10);
cmd.Parameters.Add("@Marks", OleDbType.Integer);
cmd.Parameters.Add("@RollNo", OleDbType.VarChar, 10);
希望这能奏效 当使用OLEDB参数时,参数纯粹是位置性的-它会忽略给定参数的名称,并将第一个值指定给第一个参数,将第二个值指定给第二个参数,依此类推 因此,我认为要实现上述功能,您需要更改创建参数的顺序,以反映使用参数的顺序:
cmd.Parameters.Add("@Name", OleDbType.VarChar, 10);
cmd.Parameters.Add("@Marks", OleDbType.Integer);
cmd.Parameters.Add("@RollNo", OleDbType.VarChar, 10);
希望这能奏效 当使用OLEDB参数时,参数纯粹是位置性的-它会忽略给定参数的名称,并将第一个值指定给第一个参数,将第二个值指定给第二个参数,依此类推 因此,我认为要实现上述功能,您需要更改创建参数的顺序,以反映使用参数的顺序:
cmd.Parameters.Add("@Name", OleDbType.VarChar, 10);
cmd.Parameters.Add("@Marks", OleDbType.Integer);
cmd.Parameters.Add("@RollNo", OleDbType.VarChar, 10);
希望这能奏效 当使用OLEDB参数时,参数纯粹是位置性的-它会忽略给定参数的名称,并将第一个值指定给第一个参数,将第二个值指定给第二个参数,依此类推 因此,我认为要实现上述功能,您需要更改创建参数的顺序,以反映使用参数的顺序:
cmd.Parameters.Add("@Name", OleDbType.VarChar, 10);
cmd.Parameters.Add("@Marks", OleDbType.Integer);
cmd.Parameters.Add("@RollNo", OleDbType.VarChar, 10);
希望这能奏效 WPF是一种UI技术。它绝对与任何类型的数据库操作无关。如果您的查询执行时没有错误,则该查询是有效的,但这并不意味着它符合您的目的。我建议您打开sqlstudio并测试您试图在其中执行的SQL查询,以确保它按照您想要的方式更新记录。然后将该查询移到代码中。WPF是一种UI技术。它绝对与任何类型的数据库操作无关。如果您的查询执行时没有错误,则该查询是有效的,但这并不意味着它符合您的目的。我建议您打开sqlstudio并测试您试图在其中执行的SQL查询,以确保它按照您想要的方式更新记录。然后将该查询移到代码中。WPF是一种UI技术。它绝对与任何类型的数据库操作无关。如果您的查询执行时没有错误,则该查询是有效的,但这并不意味着它符合您的目的。我建议您打开sqlstudio并测试您试图在其中执行的SQL查询,以确保它按照您想要的方式更新记录。然后将该查询移到代码中。WPF是一种UI技术。它绝对与任何类型的数据库操作无关。如果您的查询执行时没有错误,则该查询是有效的,但这并不意味着它符合您的目的。我建议您打开sqlstudio并测试您试图在其中执行的SQL查询,以确保它按照您想要的方式更新记录。然后将该查询移动到您的代码。我可以打勾吗请(:我可以打勾吗请(:我可以打勾吗