WinForm问题?急急!
在写程序的时候,很多变量是不明确,必需要读数据库以后,才能确定变量的个数.比如在数据库中提供如下几个数据,变量的名称,变量数据类型(文本),变量的值(文本).得到这些数据以后,自动生成变量.
具体点说:数据库提供这个信息,P1(变量名称),string(变量类型),value(变量的值).我想得到一个声明变量的语句:string P1 = value.我现在只能解析得到这个语句,但是没有经
过编译.换句话说,我的变量是动态生成的.我的QQ:29032127.非常着急.现在头头等着我的答案. --------------------编程问答-------------------- 希望高手能给出解决方案。QQ:29032127,Mail:lzwfs@126.com --------------------编程问答-------------------- 关注.. --------------------编程问答-------------------- 沒看明白 --------------------编程问答-------------------- 用HASHTABLE不可以吗?非要用变量? --------------------编程问答-------------------- 我刚刚想到,如果是这样子的话...只有用到指针的原理了..
因为你这个需要在程序运行的时候申请内存空间..
变量声明是为了程序在编译的时候就申请好空间..
我觉得你那个需求应该是不行的吧.可能有解决方法但是我不知道.
我觉得解决方案可能是在程序运行的时候根据你读出来的条件去申请内存空间.用指针的原理. --------------------编程问答-------------------- 你在用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"]; --------------------编程问答-------------------- 添加一些类型处理:
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");
补充:.NET技术 , C#