在看一个三层架构的程序对这个很不理解,谁可以解析一下//-------------------------------------------
// ===户用验证===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对访问器的解析还是不理解它的原理
// ===户用验证===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对访问器的解析还是不理解它的原理
并且给GetRsCount传了ht。估计是在GetRsCount处理了
{
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;}