如何解决SqlCeDataReader参数ordinal = 1
| 我在此代码上出现一个参数序号= 1错误。 有人可以在这种情况下解释吗? dbCon是正确的,因为我可以尝试将数据取回数据库就可以将数据插入数据库。 if (dbCon.State == ConnectionState.Closed)
{
dbCon.Open(); ;
}
SqlCeParameter vetidfromdropbox = new SqlCeParameter(\"@vetidfromdropbox\",SqlDbType.Int);
vetidfromdropbox.Value = 2;
SqlCeCommand mySQLCommand = new SqlCeCommand(\"SELECT * FROM vets WHERE vetID = @vetidfromdropbox\",dbCon);
SqlCeDataReader rdata = mySQLCommand.ExecuteReader();
if(rdata.Read()){
editNameTextbox.Text = (String)rdata[\"vetName\"];
editSurnameTextbox.Text = (String)rdata[\"vetSurname\"];
editCompanyNameTextbox.Text = (String)rdata[\"vetCompanyName\"];
editPractiseAddTextBox.Text = (String)rdata[\"vetPractiseAddress\"];
editMobileTextbox.Text = (String)rdata[\"vetMobile\"];
editOtherTextbox.Text = (String)rdata[\"vetOther\"];
editNotesTextbox.Text = (String)rdata[\"vetNotes\"];
}else{
MessageBox.Show(\" There has been an error with Read() \");
}
if (dbCon.State == ConnectionState.Open)
{
dbCon.Close();
}
解决方法
您没有在SQL命令中添加参数:
var vetidfromdropbox = new SqlCeParameter(\"@vetidfromdropbox\",SqlDbType.Int);
vetidfromdropbox.Value = 2;
var mySQLCommand = new SqlCeCommand(
\"SELECT * FROM vets WHERE vetID = @vetidfromdropbox\",dbCon);
mySQLCommand.Parameters.Add(vetidfromdropbox);
您可以使用AddWithValue简化语法:
var mySQLCommand = new SqlCommand(
\"SELECT * FROM vets WHERE vetID = @vetidfromdropbox\",dbCon);
mySQLCommand.Parameters.AddWithValue(\"vetidfromdropbox\",2);
旁注:在您的sql连接和命令上使用guarantee3ѭ保证处理并简化代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。