SQL命令结果到字典C#.NET 2.0

我在.NET 2.0中有一个简单的SQL查询(使用SqlCommand,SqlTransaction),它返回一个整数字符串对(ID,Name)表。 我想把这些数据放到像Dictionary这样的Dictionary

我可以将结果导入DataTable,但即使迭代它,我也不确定如何进行打字和所有这些。 我觉得这一定是一个常见问题,但我没有找到任何好的解决方案。

提前致谢。

您可以尝试类似于此的方法,调整为您当前正在循环结果:

 Dictionary dictionary = new Dictionary(); using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); using (SqlCommand command = new SqlCommand(queryString, connection)) { using (SqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { dictionary.Add(reader.GetInt32(0), reader.GetString(1)); } } } } // do something with dictionary 

SqlDataReader.GetInt32方法和SqlDataReader.GetString方法分别表示IDName列索引。

您可以将其作为DataReader返回,并使用linq构造字典:

 Dictionary dictionary; using (SqlCommand command = new SqlCommand(queryString, connection)) using (SqlDataReader reader = command.ExecuteReader()) { dictionary = reader.Cast() .ToDictionary(row => (int)row["id"], row => (string)row["name"]); } 

你可以这样做。

 // Define your Dictionary IDictionary dictionary = new Dictionary(); // Read your dataTable foreach(DataRow row in dataTable.Rows) { // Add Id and Name respectively dictionary.Add(int.parse(row[0].ToString()),row[1].ToString()) } 
  IDictionary dict = new Dictionary(); DataTable mydata = new DataTable("hey"); foreach (DataRow item in mydata.Rows) { dict.Add(item["id"], item["name"]); } 

我没有在视觉工作室中输入此内容,因此您可能需要进行微小的更改才能使其运行…

 Dictionary(int key,string value) dictionary = new Dictionary(); foreach(DataRow row in DataTable.Rows) { //null check?? dictionary.add(Convert.toInt(row[0]),row[1].toString()); } 

试试看……看看是否有帮助。