1

我正在做一个标准练习,在 gridview 中显示三个表的字段,但是在我的内部联接语句中存在语法错误。

任何关于语法错误所在位置的建议。

try
    {
        conn = new OleDbConnection(@"Provider=Microsoft.Jet.OleDb.4.0;
                                Data Source =" + Server.MapPath("App_Data\\Shopping List.mdb"));
        conn.Open();

        DataSet ds = new DataSet();

        OleDbDataAdapter dba = new OleDbDataAdapter(@"SELECT Ingredient.IngerdientId, Ingredient.IngredientName,  Area.AreaName, Recipe.RecipeName, Ingredient.Quantity 
                                                FROM Ingredient
                                                INNER JOIN Area ON Ingredient.AreaId = Area.AreaId
                                                INNER JOIN Recipe ON Ingredient.RecipeId = Recipe.RecipeId", conn);

        dba.Fill(ds);

        gridIngredients.DataSource = ds;
        gridIngredients.DataBind();
    }
    catch (Exception exe)
    {
        labMessage.Text = exe.Message; 

    }
4

1 回答 1

2

当您的FROM子句包含多个连接时,Access 数据库引擎需要括号。我认为这可能会做到这一点,但如果可以的话,您最好SELECT使用其查询设计器在 Access 中构建和测试您的语句。

FROM (Ingredient
INNER JOIN Area ON Ingredient.AreaId = Area.AreaId)
INNER JOIN Recipe ON Ingredient.RecipeId = Recipe.RecipeId
于 2012-12-04T16:58:50.677 回答