Visual Studio MySql数据库代码“resultDs.Tables”出错

2fjabf4q  于 2023-04-12  发布在  Mysql
关注(0)|答案(1)|浏览(169)

我正在用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为空。但是我检查了数据库连接没有问题。
我是个菜鸟,希望大家能给予我一些建议

kgqe7b3p

kgqe7b3p1#

正如Charlieface所说,您的sql语法中有一个错误。
当然,这并不一定是导致这个错误的原因,如果你确定你的数据库连接没有问题,可以在ResultGridView.DataSource = resultDs.Tables[0];处断点运行,然后看到resultDs的值,如果resultDs的值都是null,那就需要检查一下你的sql语句是否有问题,可以把你的sql放到数据库管理工具中,看看能不能运行成功。
如果这些都没问题,你需要给予SQLHelper.GetData的代码。这使得分析问题更容易。
同时要防止SQL注入,如果只是做简单的练习,可以使用参数过滤的方法。

相关问题