为什么不能通过执行表的第二查询将第二结果添加到我的列表框中?的SQL

CR9191

我遇到了此错误,因为我想通过对每个电影名称进行计数来打印出同一电影名称中的所有5个不同的评级整数。第一个查询的执行无懈可击,但是由于如下所述的错误,为什么我不能使第二个查询正常工作?

错误:{“列'RatingNum2'不属于表Table。”}

   private void EachRating_Click(object sender, EventArgs e)
    {
        string filename, connectionInfo;
        SqlConnection db;

        this.listBox1.Items.Clear();

        filename = "netflix.mdf";

        connectionInfo = String.Format(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=
        |DataDirectory|\{0};Integrated Security=True;", filename);

        string moviename = this.textBox1.Text;
        moviename = moviename.Replace("'", "''");

        string five = "5";
        string four = "4";

        db = new SqlConnection(connectionInfo);
        db.Open();

        SqlCommand cmd = new SqlCommand();
        cmd.Connection = db;

        cmd.CommandText = string.Format(
            @"
                SELECT MovieName, RatingNum1 FROM Movies
                INNER JOIN
                (
                SELECT MovieID, Count(Rating) as RatingNum1 FROM Reviews
                WHERE Rating = 5
                GROUP BY MovieID
                )TEMP
                ON TEMP.MovieID = Movies.MovieID
                WHERE MovieName = '{0}';", moviename);

        SqlDataAdapter adapter = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        adapter.Fill(ds);

        DataTable dt = ds.Tables["TABLE"];

        foreach (DataRow row in dt.Rows)
        {
            string msg = string.Format("{0}: {1}",
            five.ToString(),
            row["RatingNum1"].ToString());

            this.listBox1.Items.Add(msg);
        }

        SqlCommand cmd2 = new SqlCommand();
        cmd2.Connection = db;

        cmd2.CommandText = string.Format(
            @"
              SELECT MovieName, RatingNum2 FROM Movies
              INNER JOIN
              (
              SELECT MovieID, Count(Rating) as RatingNum2 FROM Reviews
              WHERE Rating = 4
              GROUP BY MovieID
              )TEMP
              ON TEMP.MovieID = Movies.MovieID
              WHERE MovieName = '{0}'", moviename);

        SqlDataAdapter adapter2 = new SqlDataAdapter(cmd2);
        DataSet ds2 = new DataSet();
        adapter.Fill(ds2);

        DataTable dt2 = ds2.Tables["TABLE"];

        foreach (DataRow row2 in dt2.Rows)
        {
            string msg = string.Format("{0}: {1}",
            four.ToString(),
            row2["RatingNum2"].ToString()); //gets the error

            this.listBox1.Items.Add(msg);
        }
VK_217

您正在使用第一个适配器填充第二个数据集,因此数据表无法找到列RatingNum2

adapter.Fill(ds2);

应该

adapter2.Fill(ds2);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将项目从一个列表框移动到另一个列表框时,如何添加到进入第二个列表框的字符串中?

使用第二种形式将项目添加到C#中其他类的列表框中

使用PHP将第二个变量添加到SQL查询中

如何将第二个模态添加到我的HTML页面

为什么不能将第二个EditText字段中的值添加到数据库中?

为什么将新对象添加到数组列表中会覆盖数组列表中对象的第二个参数?

为什么完整的Arraylist不能通过第二个for循环打印?

将列表中的行添加到第二个列表Powershell中的行

将两个表中的信息添加到第二个表

将第二个调制解调器添加到我的网络

我正在尝试将第二个带有标题,描述的表单的用户输入添加到我的数据数组中,但是无法

在两个列表上执行查找并根据条件将第二个列表中的元素添加到第一个列表

如何通过比较两个列表将缺少的元素添加到第二个列表

为什么在我的第二个列表框上调用选择回调?

添加到两个表,不能将外键添加到第二个表

通过第一个列表中的项目索引将项目添加到第二个列表

为什么BeautifulSoup将<html> <body> <p>添加到我的结果中?

为什么将类添加到按钮仅在第二次单击后有效?

为什么我的 Python 排序列表版本不能添加第二个数字?

将第二个数据库表添加到查询中,并输出与另一个名称相同的列

如何将第二级索引添加到熊猫数据框

如何在不添加到第一个表的情况下将表行添加到第二个表中

我想将新数据从第二张表添加到主表

无法通过Interface Builder将Bar按钮添加到第二页

将课程添加到第二个列表项

将值添加到数据表的第二列

SELECT查询-只能将数据添加到第二条记录中吗?

C#UWP为什么我不能添加第二个事件处理程序?

将第二个屏幕添加到我的Android应用程序时,它不会打开