protected string bd(string str)
{
string sql = " select _imageurl from proimage where _imageid='" + str + "'";
DataTable db = DbHelperSQL.Query(sql).Tables[0];
return db.Rows[0]["_imageurl"].ToString();
}
中的 return db.Rows[0]["_imageurl"].ToString();
提示“在位置 0 处没有任何行”
可是数据库中有写了_imageurl项的内容,那是哪里出错了
{
string sql = " select _imageurl from proimage where _imageid='" + str + "'";
DataTable db = DbHelperSQL.Query(sql).Tables[0];
return db.Rows[0]["_imageurl"].ToString();
}
中的 return db.Rows[0]["_imageurl"].ToString();
提示“在位置 0 处没有任何行”
可是数据库中有写了_imageurl项的内容,那是哪里出错了
string sql = string.format(" select _imageurl from proimage where _imageid='{0}'",str);在返回的时候做一下判断
if(db != null && db.rows.count > 0)
{
return db.Rows[0]["_imageurl"].ToString();
}
然后运行,就会跳到这行,当这行为黄色时,鼠标右键点击db,然后选择监视,然后可以看到db是否有数据
也就是这个查询满足条件的一条记录都没有,所以在ROWS[0]这里报错了
{
string sql = " select _imageurl from proimage where _imageid='" + str + "'";
DataTable db = DbHelperSQL.Query(sql).Tables[0];
return db.Rows[0]["_imageurl"].ToString();
//这里的db.Rows[0]["_imageurl"]没见过。。你换成数字试试?
}
string sql = " select _imageurl from proimage where _imageid='" + str + "'";
这行SQL语句没有查询出任何东西.
{
....
}
两点要说:1.使用参数化查询,防止sql注入。如果这个方法的参数不是用户输入的,也可以不用参数化,但是不推荐。
2._imageid在数据库中是varchar么?如果是char的话要确保空格被Trim掉,数据库中存储的要Trim,str这个参数也要Trim。如果_imageid是int,去掉sql语句中的单引号。