c# - 如何通过MySqlReader C#读取多个请求

标签 c# mysql asp.net-mvc model-view-controller reader

我有问题,只读第一条记录并且必须是来自数据库的 5 条记录。帮我解决这个问题。我在 1 个命令中有 3 个请求,我认为它对我来说不正常。

DB中记录截图

Screenshot of records

结果

Records

    var model = new List<WorkPeriod1>();
        MySqlCommand cmd2 = new MySqlCommand("SELECT DISTINCT target_date FROM work_period w, aspnetusers u WHERE u.Id=w.id_manager AND u.UserType=0 AND u.Id_num<>0 AND u.IsActive = TRUE AND w.target_date >= DATE_SUB('2018-04-21',INTERVAL 7 DAY);" +
            "SELECT  w.start ,w.finish, WEEKDAY(w.target_date) dayssa FROM aspnetusers u , work_period w WHERE u.Id=w.id_manager AND u.UserType=0 AND u.Id_num<>0 AND u.IsActive = TRUE AND target_date >= DATE_SUB('2018-04-21',INTERVAL 7 DAY);" +
            "SELECT DISTINCT u.ContactName ,w.description FROM aspnetusers u , work_period w WHERE u.Id=w.id_manager AND u.UserType=0 AND u.Id_num<>0 AND u.IsActive = TRUE AND w.target_date >= DATE_SUB('2018-04-21',INTERVAL 7 DAY);", conn);

        conn.Open();
        using (conn)
        {

            MySqlDataReader reader = cmd2.ExecuteReader();
            while (reader.HasRows)
            //for (int i = 0; i < reader.FieldCount; i++)
            {
                var workperiod = new WorkPeriod1();
                if (reader.Read())
                {
                    workperiod.Rtarget_date = reader.GetDateTime(0);              
                }

                reader.NextResult();
                if (reader.Read())
                {
                    workperiod.RStart = Convert.ToDateTime(reader.GetString(0));
                    workperiod.RFinish = Convert.ToDateTime(reader.GetString(1));
                    workperiod.DWA = Convert.ToInt32(reader.GetInt32(2));

                }
                reader.NextResult();
                if (reader.Read())
                {
                    workperiod.RDescr = reader.GetString(1);
                    workperiod.RContactName = reader.GetString(0);        
                }
                reader.NextResult();
                model.Add(workperiod);
            }



            reader.Close();

最佳答案

使用 while 而不是 if:

if (reader.HasRows)
{
   while (reader.Read())
   {
      .........

关于c# - 如何通过MySqlReader C#读取多个请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50059048/

相关文章:

c# - setter 可以获取它所在的属性的名称吗

c# - TaskContinuationOptions.RunContinuationsAsynchronously 和 Stack Dives

c# - 在 C# 中读取随机访问文件

php - 如何从mysql表中选择数据

asp.net-mvc - 密码保护 MVC 4 应用程序 - 对于 Betatesters

c# - 数据存储查询数组

asp.net - 从 Web 应用程序加载/保存 Word 文档 (asp.net MVC)

c# - 上传到内存流时无法访问已关闭的文件

mysql : get count and percent for all entries of a table with given conditions

mysql - 我似乎无法找到一种方法来检查我的 mysql 数据库(php7)中是否已接收电子邮件