Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.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
C# ';组附近的语法不正确,当语法不正确时,这意味着什么?_C#_Sql - Fatal编程技术网

C# ';组附近的语法不正确,当语法不正确时,这意味着什么?

C# ';组附近的语法不正确,当语法不正确时,这意味着什么?,c#,sql,C#,Sql,我正在创建一个表格,我可以添加一个菜单项,以显示所有供应商和供应商数量的零件号。所以我跑的时候让ReportSupplierDisplayALl工作。但是,当我尝试运行报表SuppliersDisplayByPartNumber的表单时,因为当我输入SupplierID时,它抛出了一个异常。 当它抛出异常时,不正确的语法是什么意思 public DataTable DisplaySupplierByPartNumber(string PartNumber) { /

我正在创建一个表格,我可以添加一个菜单项,以显示所有供应商和供应商数量的零件号。所以我跑的时候让ReportSupplierDisplayALl工作。但是,当我尝试运行报表SuppliersDisplayByPartNumber的表单时,因为当我输入SupplierID时,它抛出了一个异常。 当它抛出异常时,不正确的语法是什么意思

    public DataTable DisplaySupplierByPartNumber(string PartNumber)
    {
        // Add using System.Data

        string queryString = "SELECT Suppliers.SupplierName, Suppliers.Email, Parts.PartName, SUM(Inventory.Quantity) AS SumOfQuantity, PartNumber " +
        "FROM ((Suppliers INNER JOIN Parts ON Suppliers.SupplierID = Parts.Supplier) INNER JOIN Inventory ON Parts.PartNumber = Inventory.PartNumber " +
        "INNER JOIN Employees ON Inventory.EmpID = Employees.EmpID " +
        "GROUP BY Suppliers.SupplierName, Suppliers.Email, Parts.PartName, Parts.PartNumber " +
        "HAVING Parts.PartNumber = @PartNumber " +
        "ORDER BY Suppliers.SupplierName ";

        using (SqlConnection con = new SqlConnection(_strCon))
        {
            try
            {
                SqlCommand command = new SqlCommand(queryString, con);
                command.Parameters.AddWithValue("@PartNumber", PartNumber );
                con.Open();
                SqlDataReader reader = command.ExecuteReader();
                DataTable theTable = new DataTable();
                theTable.Load(reader);
                return theTable;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

不要使用“”作为字符串使用@查询,并确保所有括号都正确无误 也可以先更改元件的零件号,然后使用AGGRATE函数

string queryString = @"SELECT S.SupplierName, S.Email, P.PartName, SUM(Inventory. Quantity) AS SumOfQuantity FROM Suppliers as s
INNER JOIN Parts as p on P.SupplierId=P.SupplierId
INNER JOIN Inventory ON Parts.PartNumber = Inventory.PartNumber 
INNER JOIN Employees ON Inventory.EmpID = Employees.EmpID 
GROUP BY S.SupplierName, S.Email, P.PartName, P.PartNumber 
HAVING Parts.PartNumber = @PartNumber
ORDER BY S.SupplierName"

这个问题与C无关。语法错误在SQL语句中。建议:假设您使用的是MSSQL,请将该语句复制/粘贴到SQL对象资源管理器(MSVS)或SSMS中,并对其进行优化,直到“正确”为止。首先删除语句中的(假的!)括号。在FROM之后有两个开始括号,但在groupby之前只有一个结束括号。调试是程序员工作的一部分。在执行变量
queryString
之前,是否已尝试打印该变量的内容?OP的原始SQL有几个问题。不清楚他到底想做什么。。。但是你建议的询问看起来不错!