Csharp/C#教程:如何从SQL查询生成List ?分享


如何从SQL查询生成List ?

如果我定义了DbCommand来执行类似的操作:

 SELECT Column1 FROM Table1 

生成返回记录的List的最佳方法是什么?

没有Linq等,因为我正在使用VS2005。

我想这就是你要找的东西。

 List columnData = new List(); using(SqlConnection connection = new SqlConnection("conn_string")) { connection.Open(); string query = "SELECT Column1 FROM Table1"; using(SqlCommand command = new SqlCommand(query, connection)) { using (SqlDataReader reader = command.ExecuteReader()) { while (reader.Read()) { columnData.Add(reader.GetString(0)); } } } } 

没有测试,但这应该工作正常。

循环遍历项目并添加到集合。 您可以使用Add方法

 Listitems=new List(); using (var con= new SqlConnection("yourConnectionStringHere") { string qry="SELECT Column1 FROM Table1"; var cmd= new SqlCommand(qry, con); cmd.CommandType = CommandType.Text; con.Open(); using (SqlDataReader objReader = cmd.ExecuteReader()) { if (objReader.HasRows) { while (objReader.Read()) { //I would also check for DB.Null here before reading the value. string item= objReader.GetString(objReader.GetOrdinal("Column1")); items.Add(item); } } } } 

如果您想查询所有列

 List list_users = new List(); MySqlConnection cn = new MySqlConnection("connection"); MySqlCommand cm = new MySqlCommand("select * from users",cn); try { cn.Open(); MySqlDataReader dr = cm.ExecuteReader(); while (dr.Read()) { list_users.Add(new Users(dr)); } } catch { /* error */ } finally { cn.Close(); } 

用户的构造函数将执行所有“dr.GetString(i)”

返回的数据是字符串; 你可以转换为不同的数据类型:

 (from DataRow row in dataTable.Rows select row["columnName"].ToString()).ToList(); 

或者是嵌套列表(好吧,OP用于单个列,这适用于多列…):

上述就是C#学习教程:如何从SQL查询生成List ?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

  //Base list is a list of fields, ie a data record //Enclosing list is then a list of those records, ie the Result set List> ResultSet = new List>(); using (SqlConnection connection = new SqlConnection(connectionString)) { // Create the Command and Parameter objects. SqlCommand command = new SqlCommand(qString, connection); // Create and execute the DataReader.. connection.Open(); SqlDataReader reader = command.ExecuteReader(); while (reader.Read()) { var rec = new List(); for (int i = 0; i < reader.FieldCount-1; i++) { rec.Add(reader.GetString(i)); } ResultSet.Add(rec); } } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/987743.html

(0)
上一篇 2021年12月23日
下一篇 2021年12月23日

精彩推荐