简单问题,看看有什么错误? 关于OleDbCommand 查询的问题,说完就给分!

lbywyj 2003-10-15 05:21:59
s = "192.168.1.6";
strExpress = "Select * from data_info order by user_ip";//where user_ip = '·ip'
OleDbCommand cmm = new OleDbCommand(strExpress,f.ConnectToDb());
//cmm.Parameters.Add("·ip",OleDbType.VarChar,15);
//cmm.Parameters["·ip"].Value = s;
OleDbDataReader dataReader = cmm.ExecuteReader();
if(!dataReader.HasRows)
{}
else
{
do
{
Console.WriteLine("\t{0}\t{1}\n", dataReader.GetName(0), dataReader.GetName(1));

while (dataReader.Read())
Console.WriteLine("\t{0}\t{1}\n", dataReader.GetString(0), dataReader.GetString(1));

} while (dataReader.NextResult());
}
dataReader.Close();

加上//后面的语句就什么也查不到!,大家帮忙看看什么问题?
...全文
59 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
OOSnoopy 2003-10-15
  • 打赏
  • 举报
回复
很明顯的SQL語句的語法錯誤嗎,即然你這樣定義的:
OleDbCommand cmm = new OleDbCommand(strExpress,f.ConnectToDb());
那麼strExpress = "Select * from data_info where user_ip = @ip order by user_ip";//
就應該是:
strExpress = "Select * from data_info where user_ip = ? order by user_ip";//

只有SqlCommand的參數才用@開頭的。
storm97 2003-10-15
  • 打赏
  • 举报
回复
cmm.Parameters.Add(new OleDbParameter("@IP", OleDbType.VarChar, 15))
storm97 2003-10-15
  • 打赏
  • 举报
回复
new System.Data.SqlClient.SqlParameter("@IP", OleDbType.VarChar, 15)
storm97 2003-10-15
  • 打赏
  • 举报
回复
cmm.Parameters.Add("@ip",OleDbType.VarChar,15);
申明了啊!
lbywyj 2003-10-15
  • 打赏
  • 举报
回复
好像与参数@ip的申明有关系,该怎么申明?
lbywyj 2003-10-15
  • 打赏
  • 举报
回复
@ip怎么申明?
storm97 2003-10-15
  • 打赏
  • 举报
回复
什么异常?写出来看看!
lbywyj 2003-10-15
  • 打赏
  • 举报
回复
s = "192.168.1.6";
strExpress = "Select * from data_info where user_ip = @ip order by user_ip";//
OleDbCommand cmm = new OleDbCommand(strExpress,f.ConnectToDb());
cmm.Parameters.Add("@ip",OleDbType.VarChar,15);
cmm.Parameters["@ip"].Value = s;
OleDbDataReader dataReader = cmm.ExecuteReader();
if(!dataReader.HasRows)
{}
else
{
do
{
Console.WriteLine("\t{0}\t{1}\n", dataReader.GetName(0), dataReader.GetName(1));

while (dataReader.Read())
Console.WriteLine("\t{0}\t{1}\n", dataReader.GetString(0), dataReader.GetString(1));

} while (dataReader.NextResult());
}
dataReader.Close();

还是不行,这样就出现异常了,
storm97 2003-10-15
  • 打赏
  • 举报
回复
去掉SQL语句中的对参数的单引号!
storm97 2003-10-15
  • 打赏
  • 举报
回复
strExpress = "Select * from data_info order by user_ip";//where user_ip = '·ip'
应该改为:
strExpress = "Select * from data_info where user_ip = @ip order by user_ip";
OleDbCommand cmm = new OleDbCommand(strExpress,f.ConnectToDb());
cmm.Parameters.Add("@ip",OleDbType.VarChar,15);
cmm.Parameters["@ip"].Value = s;


lbywyj 2003-10-15
  • 打赏
  • 举报
回复
是@,我在写到这里是不小心写错了的!
storm97 2003-10-15
  • 打赏
  • 举报
回复
"·ip"应该是"@ip"才对!

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧