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

"公有方法,根据XWhere更新数据表XTableName中的某些纪录"我看不懂 求教
//公有方法,根据XWhere更新数据表XTableName中的某些纪录
//XTableName--表名
//XHT--哈希表,键为字段名,值为字段值
public DataSet AdvancedSearch(string XTableName, Hashtable XHT)
{
int Count = 0;

string Fields = "";
foreach(DictionaryEntry Item in XHT)
{
if (Count != 0)
{
Fields += " and ";
}
Fields += Item.Key.ToString();
Fields += " like '%";
Fields += Item.Value.ToString();
  Fields += "%'";
Count++;
}
Fields += " ";

string SqlString = "select * from " + XTableName + " where " + Fields;
  Open();
  SqlDataAdapter Adapter = new SqlDataAdapter(SqlString, Connection);
  DataSet Ds = new DataSet();
  Adapter.Fill(Ds);
  Close();
  return Ds;


——————————————————————————————
各位前辈请求帮助 能帮我解释一下这段代码不 特别是哈希表和查询那段 我实在是看不懂 谢谢各位 !!!!!

------解决方案--------------------
这个不是更新,看下面的sql语句是生成一个查询的DataSet返回.
循环HashTable是生成where后面的模糊查询条件。key存放的是表的字段名,value存放的是这个字段可能的值

------解决方案--------------------
就是将传入的hashtable的key-value对组合成下面这样的字符串。

"key1 like '%value1%' and key2 like '%value2%'"