我想在某个特定时间显示可用的导师和房间。
我有3个表课程表,房间表和教师表。我正在尝试下面的代码
create table A (id integer, wkt object);
我一直在db.Rdr上获得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();
,但这对所有其他查询都完全正常。
我已经阅读了其他问题,我想出了这个无效的解决方案。
答案 0 :(得分:0)
尝试添加其他条件以确保阅读器具有可供阅读的行:
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();
答案 1 :(得分:0)
ExecuteNonQuery返回查询执行状态,具体返回受影响的行数(source:System.Data.Common.DbCommand),尝试使用ExecuteReader删除你的NullReferenceException
attributes.get("grouplist").get().toString()