當前位置:成語大全網 - 新華字典 - C#的問題 Dictionary鍵值對和從數據庫中讀取的DataSet對比問題,好答案加分

C#的問題 Dictionary鍵值對和從數據庫中讀取的DataSet對比問題,好答案加分

我給妳個方法,不知道可以不,我的電腦沒有數據庫沒有測試。代碼如下;

數據庫:

create table tb_name(

id int primary key identity,

key int,

name varchar(50)

)

insert intio tb_name(key,name) value (1,'魏巍')

insert intio tb_name(key,name) value (2,'lily')

insert intio tb_name(key,name) value (3,'lucy')

C#代碼如下:

protected void Page_Load(object sender, EventArgs e)

{

if (!IsPostBack)

{

_dictionary.Add(1,"魏巍");

_dictionary.Add(2,"lucy");

var alert = "";

foreach (var name in getNames()) //循環集合

{

if (_dictionary.ContainsValue(name.name)) //判斷集合中是否存在表中的數據,ContainsValue這裏判斷的是字典的值。

//如果判斷鍵值可以使用ContainsKey(name.key)進行判斷

{

alert += "字典集合中存在" + name.name;

}

}

Response.Write(alert);

}

}

/// <summary>

/// 定義方法,從數據庫中得到數據

/// </summary>

/// <returns>返回name集合</returns>

private List<Names> getNames()

{

List<Names> names = null;

var str = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;

var conn=new SqlConnection(str);

const string sql = "select * from tb_name";

conn.Open();

var cmd = new SqlCommand(sql,conn);

var reader = cmd.ExecuteReader();

while (reader.Read())

{

var name = new Names

{

id = (int)reader["id"],

key =Convert.ToInt32(reader["key"]),

name = reader["name"].ToString()

};

names.Add(name);

}

return names;

}

//定義集合

Dictionary<int,string> _dictionary=new Dictionary<int, string>();

//定義類映射數據庫中的表

public class Names

{

public int id { get; set; }

public int key { get; set; }

public string name { get; set; }

}

呵呵,應該可以吧。。。頂壹下吧。。。