MyException - 我的异常网
当前位置:我的异常网» C# » 关于将数据库里的数据存入Hashtable中,再与另一个Ha

关于将数据库里的数据存入Hashtable中,再与另一个Hashtable比较,解决马上散分,多谢

www.MyException.Cn  网友分享于:2013-01-07  浏览:187次
关于将数据库里的数据存入Hashtable中,再与另一个Hashtable比较,解决马上散分,谢谢
我把问题说明白点,我就不写我的代码了,因为我的代码通过测试是有问题的.我要从数据库里提取两个数据,分别是a,b,表名为table.然后保存到Hashtable1里,a为Hashtable1的键,b为Hashtable1的值,数据库提取出来的有可能一个键只有一个值,也有可能一个键有多个值,数据库里的数据就以键值对的方式保存到Hashtable1里,然后再用Hashtable1和Hashtable2进行比较,如果Hashtable1里的键在Hashtable2里也有就比较值,有相同的值就输出 "OK ".
这就是我要实现的整个过程,希望大家给予帮助,谢谢!!!


------解决方案--------------------
//把数值保存进Hashtable1
int count = myDs.Tables[ "table "].Rows;
for(int i=0;i <count;i++)
{
DataRow row = myDs.Tables[ "table "].Rows[i];
string strkbh=row[0].ToString().Trim();
string strcgq=row[1].ToString().Trim();
if(Hashtable1.ContainsKey(strkbh))
{
Hashtable1[strkbh] = Hashtable1[strkbh].ToString()+strcgq;
}
else
{
Hashtable1.Add(strkbh,strcgq);
}
}
//构造你的Hashtable2
。。。。。。。。。。。。。。。。

//比较Hashtable1和Hashtable2
foreach(DictionaryEntry de in Hashtable1)
{
if (Hashtable2.Contains(de.Key) &&
Hashtable2[de.Key].ToString() == de.Value.ToString())
{
Console.WriteLine( "OK ");
break;//如果存在则退出循环
}
}
------解决方案--------------------
using System;
using System.Collections;
using System.Data;

public class MyClass
{
public static void Main()
{
//定义并增充datatable
DataTable dt=new DataTable();
dt.Columns.Add( "key ",typeof(int));
dt.Columns.Add( "value ",typeof(int));
dt.Rows.Add(new object[]{1,1});
dt.Rows.Add(new object[]{1,2});
dt.Rows.Add(new object[]{3,3});
//Hashtable
Hashtable ht=new Hashtable ();
ht.Add(1,1);
ht.Add(2,2);
ht.Add(3,3);
//遍历
foreach(DataRow dr in dt.Rows){
if(ht.ContainsKey (dr[0]) && (int) ht[dr[0]]==(int)dr[1] ){
Console.WriteLine( " key :{0} \tvalue: {1} is OK ",ht[dr[0]],dr[1]);
}
}

Console.Write( "End ");
Console.Read();
}


}
------解决方案--------------------
如果是与另一个hashtable比较,而源数据有没有唯一的主键,那么就不要用hashTable了.假设源数据为DataTable
DataRow[] rows;
foreach(object key in Hashtable2.Keys)
{
rows=MyDataTable.Select( "a= ' " +(string)key + " ' and = ' " +(string)Hashtable2[key]+ " ', ";
if(rows.Length> 0)
{MessageBox.Show( "OK ");}
else
{MessageBox.Show( "NO ");}
}
------解决方案--------------------
private void Form1_Load(object sender, EventArgs e)
{
string sql = " ";
sql = "insert into Hashtable1(a,b) select a,b from table ";
System.Data.DataTable a = new DataTable();
sqlDataAdapter da = new sqlDataAdapter();
da.fill(a);
da.dispose();

string sqlstr = " ";
sqlstr = "select a1,b1 from Hashtable2 ";
System.Data.DataTable b = new DataTable();
sqlDataAdapter db = new sqlDataAdapter();
db.fill(b);
db.dispose();


bool panduan = false;
for (int i = 0; i < a.Rows.Count; i++)
{
for (int j = 0; j < b.Rows.Count; j++)
{
if (a.Rows[i][a] = b.Rows[j][a1])
{
if(a.Rows[i][b]=b.Rows[j][b1])

文章评论

我是如何打败拖延症的
我是如何打败拖延症的
旅行,写作,编程
旅行,写作,编程
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
如何成为一名黑客
如何成为一名黑客
程序员应该关注的一些事儿
程序员应该关注的一些事儿
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
程序员的鄙视链
程序员的鄙视链
老程序员的下场
老程序员的下场
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
总结2014中国互联网十大段子
总结2014中国互联网十大段子
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
一个程序员的时间管理
一个程序员的时间管理
程序员都该阅读的书
程序员都该阅读的书
代码女神横空出世
代码女神横空出世
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
程序员必看的十大电影
程序员必看的十大电影
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
中美印日四国程序员比较
中美印日四国程序员比较
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
漫画:程序员的工作
漫画:程序员的工作
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
10个调试和排错的小建议
10个调试和排错的小建议
Java程序员必看电影
Java程序员必看电影
程序员和编码员之间的区别
程序员和编码员之间的区别
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
每天工作4小时的程序员
每天工作4小时的程序员
我的丈夫是个程序员
我的丈夫是个程序员
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
为什么程序员都是夜猫子
为什么程序员都是夜猫子
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
 程序员的样子
程序员的样子
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
鲜为人知的编程真相
鲜为人知的编程真相
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有