我給妳個方法,不知道可以不,我的電腦沒有數據庫沒有測試。代碼如下;
數據庫:
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; }
}
呵呵,應該可以吧。。。頂壹下吧。。。