首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL C#预订系统3表在选定时间提供教师/房间

SQL C#预订系统3表在选定时间提供教师/房间
EN

Stack Overflow用户
提问于 2016-12-22 23:22:18
回答 2查看 75关注 0票数 0

我正在尝试在特定日期和特定时间显示可用的导师和房间。

我有三张桌子,课桌,房桌和辅导桌。我正在尝试下面的代码

代码语言:javascript
复制
string sqlFormattedDate = DateTime.Today.ToString("yyyy-MM-dd HH:mm:ss.fff");
    db.Cmd = db.Conn.CreateCommand();
    db.Cmd.CommandText = "SELECT RoomNumber FROM RoomTBL WHERE RoomNumber NOT IN (
                          SELECT RoomNumber FROM LessonsTBL Where PupilID   = " + 1 + " AND
                          StartDate = '" + sqlFormattedDate + "')";
        db.Cmd.ExecuteNonQuery();
        while (db.Rdr.Read())
        {
          listBox1.Items.Add(db.Rdr);
        }
        db.Rdr.Close(); 

我一直在db.Rdr上得到一个System.NullReferenceException,但对于所有其他查询来说,这是完全正常的。

我已经阅读了其他问题,并提出了这个解决方案,但不起作用。

EN

回答 2

Stack Overflow用户

发布于 2016-12-23 00:44:15

尝试添加另一个条件,以确保读取器具有可供读取的行:

代码语言:javascript
复制
    string sqlFormattedDate = DateTime.Today.ToString("yyyy-MM-dd HH:mm:ss.fff");
    db.Cmd = db.Conn.CreateCommand();
    db.Cmd.CommandText = "SELECT RoomNumber FROM RoomTBL WHERE RoomNumber NOT IN (SELECT RoomNumber FROM LessonsTBL Where PupilID = " + 1 + " AND StartDate = '" + sqlFormattedDate + "')";
    db.Cmd.ExecuteNonQuery();
    if (db.Rdr.HasRows)
    {
      while (db.Rdr.Read())
      {
        listBox1.Items.Add(db.Rdr);
      }
    }   
    db.Rdr.Close(); 
票数 0
EN

Stack Overflow用户

发布于 2016-12-23 21:32:36

ExecuteNonQuery返回查询执行状态,具体地说,返回受影响的行数(来源: System.Data.Common.DbCommand),尝试使用ExecuteReader将删除您的NullReferenceException

代码语言:javascript
复制
string sqlFormattedDate = DateTime.Today.ToString("yyyy-MM-dd HH:mm:ss.fff");
db.Cmd = db.Conn.CreateCommand();
db.Cmd.CommandText = "SELECT RoomNumber FROM RoomTBL WHERE RoomNumber NOT IN (SELECT RoomNumber FROM LessonsTBL Where PupilID = " + 1 + " AND StartDate = '" + sqlFormattedDate + "')";
//db.Cmd.ExecuteNonQuery();
db.Rdr = cmd.ExecuteReader()
if (db.Rdr.HasRows)
{
  while (db.Rdr.Read())
  {
    listBox1.Items.Add(db.Rdr);
  }
}   
db.Rdr.Close();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41286416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档