Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 未编译DataColumn中的产品表达式,错误显示为;找不到列[max]。“;_Mysql_C# 4.0_Ado.net - Fatal编程技术网

Mysql 未编译DataColumn中的产品表达式,错误显示为;找不到列[max]。“;

Mysql 未编译DataColumn中的产品表达式,错误显示为;找不到列[max]。“;,mysql,c#-4.0,ado.net,Mysql,C# 4.0,Ado.net,运行代码时出现错误“找不到列[max]”,但我已将max和min列添加到数据集中的表中 MySql.Data.MySqlClient.MySqlConnection mycon = new MySqlConnection(GetConnectionString()); if (mycon.State != ConnectionState.Open) { string sqlCat = "SELECT * FROM out_of_mark_tab

运行代码时出现错误“找不到列[max]”,但我已将max和min列添加到数据集中的表中

MySql.Data.MySqlClient.MySqlConnection mycon = new MySqlConnection(GetConnectionString());
    if (mycon.State != ConnectionState.Open)

        {

            string sqlCat = "SELECT * FROM out_of_mark_table";
            string sqlProd = "SELECT * FROM scord_mark_table";

            MySqlDataAdapter da = new MySqlDataAdapter(sqlCat, mycon);
            DataSet ds = new DataSet();

            try
            {
                mycon.Open();
                da.Fill(ds, "out_of_mark_table");

                da.SelectCommand.CommandText = sqlProd;
                da.Fill(ds, "scord_mark_table");
            }
            finally
            {
                mycon.Close();
            }

            DataRelation relat = new DataRelation("CatProds", ds.Tables["out_of_mark_table"].Columns["test_id"], ds.Tables["scord_mark_table"].Columns["test_id"]);
            ds.Relations.Add(relat);

            DataColumn count = new DataColumn("Products (#)", typeof(int), "COUNT(Child(CatProds).test_id)");
            DataColumn max = new DataColumn("Most Expensive Product", typeof(decimal), "MAX(Child(CatProds).total)");
            DataColumn min = new DataColumn("Least Expensive Product", typeof(decimal), "MIN(Child(CatProds).total)");
            DataColumn no=new DataColumn("No");
            DataColumn IdCol = new DataColumn();
            min.Caption = "min";
            max.Caption = "max";
            string expr = "max * min";

            IdCol.ColumnName = "ID";
            IdCol.DataType = Type.GetType("System.Int32");
            IdCol.ReadOnly = true;
            IdCol.AllowDBNull = false;
            //IdCol.Unique = true;
            IdCol.AutoIncrement = true;
            IdCol.AutoIncrementSeed = 1;
            IdCol.AutoIncrementStep = 1;



            ds.Tables["out_of_mark_table"].Columns.Add(count);
            ds.Tables["out_of_mark_table"].Columns.Add(max);
            ds.Tables["out_of_mark_table"].Columns.Add(min);
            ds.Tables["out_of_mark_table"].Columns.Add(IdCol);
            DataColumn sum = new DataColumn("Sum of", typeof(int), expr, MappingType.Attribute);
            **ds.Tables["out_of_mark_table"].Columns.Add(sum);**
            IdCol.SetOrdinal(0);
            GridView1.DataSource = ds.Tables["out_of_mark_table"];
            GridView1.DataBind();

您已经将标题设置为“Max”和“Min”,但是
DataColumns的
标识符是它的
Ordinal
或。您已将
列名称
通过设置为

“最昂贵的产品”
“最便宜的产品”

所以使用

string expr = "[Most Expensive Product] * [Least Expensive Product]";
相反