我想从访问数据库中获取数据并在Datagridview处显示数据。我的表是:

TABLE 1(AB)           TABLE 2(CD)         TABLE 3(EF)      TABLE 4(GH)
-------------        -----------------   -------------    -------------------
SID SName CID TID    TID TName Tprice     FID CID FCp      FPID FID FCp Fprice


我正在使用C#检索数据的查询是:

OleDbCommand command1 = new OleDbCommand();
command1.Connection = connection;
command1.CommandText = "select T.TName, T.Tprice, P.FCp, P.Fprice from (([AB] S inner join [CD] T on S.TID = T.TID) (inner join [EF] C on S.CID = C.CID) inner join [GH] P on C.FID = P.FID where (S.SID = 2) ";
OleDbDataReader myreader = command1.ExecuteReader();
while (myreader.Read())
{
    //DATA IS READ HERE
}


我得到的错误是:


  JOIN表达式的语法错误


我想要TName, Tprice, FCp(TABLE 4), Fprice作为我的输出。我做对了还是有其他方法可以做到这一点。

最佳答案

在您的from中,您有一个无括号的括号(第一个)。

除了固定括号外,如果您跳行,它也更易读:

command1.CommandText = @"select T.TName, T.Tprice, P.FCp, P.Fprice
                         from (([AB] S
                         inner join [CD] T on S.TID = T.TID)
                         inner join [EF] C on S.CID = C.CID)
                         inner join [GH] P on C.FID = P.FID
                         where S.SID = 2";


(Access requires parentheseses)

关于c# - 4个表的内部Join查询的语法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45397679/

10-10 02:57