读取数据库的数据并转换成List<>

一、在有帮助类DbHelperSQL的时候

1、下为其中返回SqlDataReader的方法

 1 /// <summary>
 2         /// 执行查询语句,返回SqlDataReader ( 注意:调用该方法后,一定要对SqlDataReader进行Close )
 3         /// </summary>
 4         /// <param name="strSQL">查询语句</param>
 5         /// <returns>SqlDataReader</returns>
 6         public static SqlDataReader ExecuteReader(string strSQL)
 7         {
 8             SqlConnection connection = new SqlConnection(connectionString);
 9             SqlCommand cmd = new SqlCommand(strSQL, connection);
10             try
11             {
12                 connection.Open();
13                 SqlDataReader myReader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
14                 return myReader;
15             }
16             catch (System.Data.SqlClient.SqlException e)
17             {
18                 throw e;
19             }   
20 
21         }

2、三层DAL层方法

 1 /// <summary>
 2         /// 把读出的数据转换成List
 3         /// </summary>
 4         public List<int> GetUserList(int hid)
 5         {
 6             string sql = " select V_UserID from UserVoters where V_HeadlineID=" + hid + "";
 7             SqlDataReader dr = DbHelperSQL.ExecuteReader(sql);
 8             List<UserVotersModel> plist = new List<UserVotersModel>();
 9             while (dr.Read())
10             {
11                 UserVotersModel uvm = new UserVotersModel();
12                 uvm.V_UserID = int.Parse(dr["V_UserID"].ToString());
13                 plist.Add(uvm);
14             }
15             List<int> list = new List<int>();
16             for (int i = 0; i < plist.Count; i++)
17             {
18                 list.Add(int.Parse(plist[i].V_UserID.ToString()));
19             }
20             return list;
21         }

3、把List当参数放到sql语句里的方法

 1  /// <summary>
 2         /// 获得未投票用户列表
 3         /// </summary>
 4         public DataSet GetNoPersonList(List<int> list)
 5         {
 6             StringBuilder strSql = new StringBuilder();
 7             if (list != null && list.Count > 0)
 8             {
 9                 string listMes = string.Empty;
10                 foreach (int str in list)
11                 {
12                     listMes += "'" + str + "',";
13                 }
14                 strSql.Append("select U_Uid,U_Name,U_Sex,U_Phone,U_QQ  from dbo.UsersInfo where U_ID not in(" + listMes.TrimEnd(',') + ") and U_Level=4 and U_Name='' ORDER BY  U_ID DESC ");
15                 return DbHelperSQL.Query(strSql.ToString());
16             }
17             else
18             {
19                 strSql.Append(" select U_Uid,U_Name,U_Sex,U_Phone,U_QQ  from dbo.UsersInfo where U_Level=4 and  U_Name='' ORDER BY  U_ID DESC ");
20                 return DbHelperSQL.Query(strSql.ToString());
21             }
22         }

二、没有帮助类直接读取数据库

 1 /// <summary>
 2         /// 读取数据库的信息,并转换成List
 3         /// </summary>
 4         public List<MailData> GetExpiredLicense()
 5         {
 6             string connectionString = "Data Source=01;Initial Catalog=Music;Persist Security Info=True;User ID=Musicname;Password=123456";
 7             SqlConnection conn = new SqlConnection(connectionString);
 8             conn.Open();         
 9             string sql = string.Format( @" select * from Tale" );
10             
11             SqlDataAdapter da = new SqlDataAdapter(sql, connectionString);
12             DataSet ds = new DataSet();
13             da.Fill(ds);
14             List<MailData> list = new List<MailData>(); //MailData为要查询表的实体类    
15             foreach (DataRow item in ds.Tables[0].Rows)
16             {
17                 list.Add(MailData.ConvertRow(item));
18             }
19             return list;
20         }

 

posted @ 2015-05-29 09:58  shzhq  阅读(2530)  评论(0编辑  收藏  举报