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方法分别表示ID
和Name
列索引。
您可以将其作为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()); }
试试看……看看是否有帮助。