日期:2014-05-17  浏览次数:20470 次

这段代码应该如何改
[code=C#][/code]  
using model;
/// 根据ID查找
public DataTable SelectById(string id)
{
  DataTable dt = new DataTable();
  //P_Admin pa = new P_Admin();
  string sql = "select * from P_Admin whrer P_id"; //1
  SqlParameter[] para = new SqlParameter[] { new SqlParameter("@P_id",id)}; //2  
  dt = sqlhelper.ExecuteQuery(sql, para, CommandType.Text );
  return dt;
}
1,在这段代码中的 P_id 是表的字段名,但我不知道这里传进来的参数应该怎么写,是直接写 id 呢,还是写model下(class P_Admin)private string P_id ; public string p_id{get...} 中的 P_id 或 p_id 。能不能帮我写一个正确的查询语句。
2,在第二中, @P_id 和 id 这两个分别表示什么?

这段代码是仿写的,原代码用的不是查询语句,而是存储过程。改了一下,弄得我都糊涂了



------解决方案--------------------
"select * from P_Admin whrer P_id="+pa.p_id;
@P_id是给sql语句中的参数 id是给参数赋值的值
------解决方案--------------------
public DataTable SelectById(string id) <-- 你要查询的字段的值
{
DataTable dt = new DataTable();
//P_Admin pa = new P_Admin();
string sql = "select * from P_Admin whrer P_id"; //1 <-- 这里确定不是 字段名=@P_id ?
SqlParameter[] para = new SqlParameter[] { new SqlParameter("@P_id",id)}; //2 <--@P_id是参数名 id 是字段值
dt = sqlhelper.ExecuteQuery(sql, para, CommandType.Text );
return dt;
}
------解决方案--------------------
string sql = "select * from P_Admin whrer P_id"; //1
?
string sql = "select * from P_Admin where P_id=@P_id"; //1
@P_id这个就是sql中的参数,会被后面的id替换掉真正的值,id就是你传入的参数 
注意,where这个单词都拼错了。好好学基础吧