在看一个三层架构的程序对这个很不理解,谁可以解析一下//-------------------------------------------
// ===户用验证===Hashtable ht=new Hashtable(); 
ht.Add("User_Id",User_Id.Text.Replace(" ","")); // 帐号
ht.Add("Password",Password.Text.Replace(" ","")); // 密码if (bll_User.UserValidate(ht)==0)
{
Config conn=new Config(); 
conn.Alert("User_Id","帐号有误",Page);
return;
}
//bll_User.UserValidatepublic int UserValidate(Hashtable ht) 
{
return dal.UserValidate(ht);
}//dal.UserValidate
public int UserValidate(Hashtable ht) 
{
return Data.GetRsCount(Data.conn_Default,"[User]","User_Id=@User_Id and Password=@Password",ht);
}               
而User_Id、Password是引用下面名字空间的方法的private string _User_Id;
private string  _Password; public string User_Id 
{
get { return _User_Id; }
set { _User_Id=value;  }
}
public string Password 
{
get { return _Password; }
set { _Password=value;  }
}
这里就不明白User_Id=@User_Id and Password=@Password 到底怎么可以得到 用户从输入框输入的值呢
看了MSDN对访问器的解析还是不理解它的原理

解决方案 »

  1.   

    输入框的值只是给了Hashtable的键值对。
    并且给GetRsCount传了ht。估计是在GetRsCount处理了
      

  2.   

    肯定在GetRsCount里了。于get{}set{}的没看出有什么关系.get.set只是设置或者获取变量的值,你这里好象没用到啊。
      

  3.   

    public static int GetRsCount(string connString,string Table,string ht_Where,Hashtable ht)
    {
    if (ht==null)
    {
    string str_Sql=GetPageListCountSqlbyHt(Table,ht_Where,null);
    return (int)ExecuteScalar(connString,CommandType.Text,str_Sql,null);
    }
    else
    {
    string str_Sql=GetPageListCountSqlbyHt(Table,ht_Where,ht);
    SqlParameter[] Parms=new SqlParameter[ht.Count];
    IDictionaryEnumerator et = ht.GetEnumerator();
    int i=0;
    // 作哈希表循环
    while ( et.MoveNext() )
    {
    System.Data.SqlClient.SqlParameter sp=Data.MakeParam("@"+et.Key.ToString(),et.Value.ToString());
    Parms[i]=sp; // 添加SqlParameter对象
    i=i+1;
    }
    return (int)ExecuteScalar(connString,CommandType.Text,str_Sql,Parms);
    }
    }
    public static string GetPageListCountSqlbyHt(string Table,string ht_Where,Hashtable ht)
    {
    string str_Sql="";
    if (ht_Where=="" || ht_Where==null)
    {
    string str_Ht="";
    if (ht!=null) // 用ht做条件
    {

    IDictionaryEnumerator et = ht.GetEnumerator();
    int k=0;
    while ( et.MoveNext() )
    {
    if (k==0)
    {
    str_Ht=" "+et.Key.ToString()+"=@"+et.Key.ToString();
    }
    else
    {
    str_Ht=str_Ht+" and "+et.Key.ToString()+"=@"+et.Key.ToString();
    }
    k=k+1;
    }
    }
    if (str_Ht!="")
    {
    str_Sql="Select Count(*) From "+Table+" where "+str_Ht;
    }
    else
    {
    str_Sql="Select Count(*) From "+Table;
    }
    }
    else
    {
    str_Sql="Select Count(*) From "+Table+" where "+ht_Where; 
    } return str_Sql;}