关于“
System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。”的错误,请教
大家看这段代码,我检查很久,我估计是 sql 语句那里有错误,但是我还是不知道怎么改,请大家帮我看看,
protected void SearchButton_Click(object sender, EventArgs e)
{
resultmsg.Text = " ";
string strIp = IPTextBox.Text;
long ipvalue = IpToNum(strIp);//这个函数的目的是将IP地址转换为数值
OleDbCommand dataCommand = new OleDbCommand();
ConnectAccessDB();
dataCommand.Connection = accessConn;
dataCommand.CommandText=
"SELECT * FROM iptable " +
"WHERE starp <=ipvalue AND endp> =ipvalue ";
OleDbDataReader dataReader = dataCommand.ExecuteReader();// 96 行,错误所在行
while (dataReader.Read())
{
resultmsg.Text+= dataReader.GetString(5);
resultmsg.Text+= dataReader.GetString(6);
}
dataCommand.Connection.Close();
accessConn.Close();
}
提示错误:
异常详细信息:
System.Data.OleDb.OleDbException: 至少一个参数没有被指定值。
源错误:
行 94: "SELECT * FROM iptable " +
行 95: "WHERE starp <=ipvalue AND endp> =ipvalue ";
行 96: OleDbDataReader dataReader = dataCommand.ExecuteReader();
行 97: while (dataReader.Read())
行 98: {
源文件: e:\Visual Studio 2005\WebSites\IP search\IpSearch.aspx.cs 行: 96
我这里没有同学可以请教,所以期待网上各位朋友帮助!
------解决方案--------------------这样改,此行改为
dataCommand.CommandText=
"SELECT * FROM iptable " +
"WHERE starp <=? AND endp> =? ";
在执行之前的地方加入这一行:
dataCommand.Parameters.AddWithValue( "starp ", ipvalue);