希望高手能给出解决方案。QQ:29032127,Mail:[email protected]

解决方案 »

  1.   

    用HASHTABLE不可以吗?非要用变量?
      

  2.   

    你在用VS2008吗?.net 3.0 开始支持 var 类型了。
    如果你还在用VS2005,你可以用Hashtable openWith = new Hashtable();using(IDataReader dr = 你的数据库查询.ExecuteReader())
    {
    while(dr.Read())
    {
      openWith.Add(dr["name"],dr["value"]);
    }
    }处理:
            foreach (DictionaryEntry de in openWith)
            {
                Console.WriteLine("Key = {0}, Value = {1}", de.Key, de.Value);
            }
    你需要用某个变量时,按如下访问:
    object value1 = openWith["key"];
      

  3.   

    添加一些类型处理:Hashtable openWith = new Hashtable();using(IDataReader dr = 你的数据库查询.ExecuteReader())
    {
    while(dr.Read())
    {
      openWith.Add(dr["name"],GetValue(dr["type"].ToString(),dr["value"].ToString()));
    }
    } // 注意:这个类型名称必须是完成的类型名称,详细看下面的测试
    private object GetValue(string type, string value)
    {
    Type t = Type.GetType(type);
    return Convert.ChangeType(value, t);
    }
    测试一下这个函数
    object a = GetValue("System.String", "1");
    object b = GetValue("System.Int32", "1");
    object c = GetValue("System.Boolean", "true");