1

グリッドビューに3つのテーブルのフィールドを表示する標準的な演習を行っていますが、内部の結合ステートメントに構文エラーがあります。

おそらく構文エラーがどこにあるかについてのアドバイス。

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句に複数の結合が含まれている場合、Accessdbエンジンには括弧が必要です。これでうまくいくと思いますが、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 に答える