我正在用Visual Studio和C#制作一个简单的课程管理系统,但是在编写课程查询函数时遇到了一些问题。
错误:为“resultDs.Tables”引发了类型为“System.NullReferenceException”的异常
下面是我的代码
private void SelectResultForm_Load(object sender, EventArgs e)
{
string sql = "select ca.id,c.name as coures_name,t.real_name as teacher_name,ca.course_time,ca.course_place,ca.max_num";
sql += " from course_arrange ca,course c, teacher t where ca.course_id = c.id and ca.teacher_id = t.id";
DataSet ds = SQLHelper.GetData(sql);
courseArrangeGridView.DataSource = ds.Tables[0];
int firstArrangeId = (int)ds.Tables[0].Rows[0][0];
sql = "select * from select_result where course_arrange_id" + firstArrangeId;
DataSet resultDs = SQLHelper.GetData(sql);
ResultGridView.DataSource = resultDs.Tables[0];//error
}
我在这个地方遇到了一个断点,resultDs.Tables为空。但是我检查了数据库连接没有问题。
我是个菜鸟,希望大家能给予我一些建议
1条答案
按热度按时间kgqe7b3p1#
正如Charlieface所说,您的sql语法中有一个错误。
当然,这并不一定是导致这个错误的原因,如果你确定你的数据库连接没有问题,可以在
ResultGridView.DataSource = resultDs.Tables[0];
处断点运行,然后看到resultDs的值,如果resultDs的值都是null,那就需要检查一下你的sql语句是否有问题,可以把你的sql放到数据库管理工具中,看看能不能运行成功。如果这些都没问题,你需要给予
SQLHelper.GetData
的代码。这使得分析问题更容易。同时要防止SQL注入,如果只是做简单的练习,可以使用参数过滤的方法。