怎么用C#写一段代码,把结果集写到数组中去以检索用?

时间:2022-09-03 12:06:48
一个表中有记录如下,两个字段:代号、实际内容
        01   开业
        02   变更
        03   年检
        04   注销
我的ASP.Net程序中须不断用到它们,因是远程访问,我不想总访问数据库,想把它们读出来,放到一个数组中,使用它时当有一个字符串(如03)须检索时,能通过比较第一列中的内容,得到第二列的'年检',
我初学C#,不知是否有当数据库联结断开后仍能保存结果集的方式,所以想用数组。

  哪位老大能帮写出具体代码:把表内容写到数组,并用一个字符串(例如03)到数组中查找,得到相对应的'年检' .先谢谢了。

9 个解决方案

#1


晕.NET中的结果集DataSet是无连接的
即使以前的ADO,也有切断记录集的

#2


是在一个事件中吗?B/S程序不像C/S程序可以在内存中保存数据的
比如按钮点击事件是单独的一段程序,要回送服务器的,必然要重新访问数据库

#3


//得到记录读取器dr后:
Hashtable ht = new Hashtable();
while(dr.Read())
{
ht.Add(dr[0],dr[1]);
}
string val = ht["01"].ToString();

#4


如果在多个用户中用到可以把ht对象放到Application["ht"] = ht;
如果只是在一个用户多个页面中用到则放到Session["ht"] = ht;

#5


请问hzw66(超越理想) ,比如我得到Hashtable后,现在有一个字符串'03',怎么得到它对应的‘年检’?   写string val = ht["03"].ToString();能行吗? 对不起我没试,因为我不能总上网,所以先问一下。谢谢了。


#6


如果是比较固定的内容,可以在Application启动时就调入内存,存储可以用Config文件(XML)
可以建一个实体类,对应一条数据库记录,多个对象存在ArrayList里面

#7


用xmlhttp

#8


用Hashtable
具体的方式见hzw66(超越理想)所介绍
然后关于你问的

-----------------------
请问hzw66(超越理想) ,比如我得到Hashtable后,现在有一个字符串'03',怎么得到它对应的‘年检’?   写string val = ht["03"].ToString();能行吗? 对不起我没试,因为我不能总上网,所以先问一下。谢谢了。
---------------------------
string val = ht["03"].ToString();  这样可以取到

#9


如果楼主的数据是公用数据,并且不经常改变的,你可以使用Cache来实现永久保存(不要使用Application或其他)
1.把数据取出来,填充开datatable里面
DataTable mytab = ....;
2.把结果存储到cache里面
Cache["mytab"] = mytab;
此两个步骤你可在Application_Start里面实现,达到一次填充处处调用的目的.
3.需要调用的时候
DataTable mytab = (DataTable)Cache["mytab"];
如上即可随时获取,需要的值.
当数据发生变化时,你可重新填充数据并写到cache里面.
当然,cache在某些情况下会产生丢失,所以你取值的时候,必须对此点做判断,一旦发现丢失,请再次填充.

#1


晕.NET中的结果集DataSet是无连接的
即使以前的ADO,也有切断记录集的

#2


是在一个事件中吗?B/S程序不像C/S程序可以在内存中保存数据的
比如按钮点击事件是单独的一段程序,要回送服务器的,必然要重新访问数据库

#3


//得到记录读取器dr后:
Hashtable ht = new Hashtable();
while(dr.Read())
{
ht.Add(dr[0],dr[1]);
}
string val = ht["01"].ToString();

#4


如果在多个用户中用到可以把ht对象放到Application["ht"] = ht;
如果只是在一个用户多个页面中用到则放到Session["ht"] = ht;

#5


请问hzw66(超越理想) ,比如我得到Hashtable后,现在有一个字符串'03',怎么得到它对应的‘年检’?   写string val = ht["03"].ToString();能行吗? 对不起我没试,因为我不能总上网,所以先问一下。谢谢了。


#6


如果是比较固定的内容,可以在Application启动时就调入内存,存储可以用Config文件(XML)
可以建一个实体类,对应一条数据库记录,多个对象存在ArrayList里面

#7


用xmlhttp

#8


用Hashtable
具体的方式见hzw66(超越理想)所介绍
然后关于你问的

-----------------------
请问hzw66(超越理想) ,比如我得到Hashtable后,现在有一个字符串'03',怎么得到它对应的‘年检’?   写string val = ht["03"].ToString();能行吗? 对不起我没试,因为我不能总上网,所以先问一下。谢谢了。
---------------------------
string val = ht["03"].ToString();  这样可以取到

#9


如果楼主的数据是公用数据,并且不经常改变的,你可以使用Cache来实现永久保存(不要使用Application或其他)
1.把数据取出来,填充开datatable里面
DataTable mytab = ....;
2.把结果存储到cache里面
Cache["mytab"] = mytab;
此两个步骤你可在Application_Start里面实现,达到一次填充处处调用的目的.
3.需要调用的时候
DataTable mytab = (DataTable)Cache["mytab"];
如上即可随时获取,需要的值.
当数据发生变化时,你可重新填充数据并写到cache里面.
当然,cache在某些情况下会产生丢失,所以你取值的时候,必须对此点做判断,一旦发现丢失,请再次填充.