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 这两个分别表示什么?这段代码是仿写的,原代码用的不是查询语句,而是存储过程。改了一下,弄得我都糊涂了

解决方案 »

  1.   

    "select * from P_Admin whrer P_id="+pa.p_id;
    @P_id是给sql语句中的参数    id是给参数赋值的值
      

  2.   

    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;
    }
      

  3.   

    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这个单词都拼错了。好好学基础吧