【发布时间】:2017-09-02 20:04:06
【问题描述】:
我在 C# 中的 SQL 查询有问题。
在我的数据库中,我有表:Supplier、ApplicationForm、SupplierAdress。我试图加入这三个表,但inner join 出现语法错误。
我在 C# 中的方法也有输入参数 AppFormID。使用该参数,我必须从 Windows 应用程序的数据库中打开特定的申请表。
这是我的 SQL 查询:
command.CommandText = "select ApplicationForm.Date,ApplicationForm.About,ApplicationForm.Supplier," +
" Supplier.IDSupplier,Supplier.Name,Supplier.Email,Supplier.Phone," +
" Supplier.SupplierAdress,SupplierAdress.AdressID,SupplierAdress.Name" +
" from ApplicationForm" +
" inner join Supplier on ApplicationForm.Supplier=Supplier.IDSupplier" +
" inner join SupplierAdress on ApplicationForm.Supplier.SupplierAdress = SupplierAdress .AdressID" +
" where ApplicationForm.ApplicatonFormID=" + AppFormID;
希望有人能帮助我。
【问题讨论】:
-
"SupplierAdress .AdressID" 您在点(句点)之前有一个不需要的空格
-
使用参数化查询。它是一个 winforms 应用程序这一事实并不能保护您免受 Sql 注入。参数做。另外,
ApplicationForm.Supplier.SupplierAdress =SupplierAdress .AdressID应该是Supplier.SupplierAdress =SupplierAdress.AdressID -
此问题与
windows或forms无关,仅与编写的SQL查询有关。 -
您遇到的错误是什么
-
我的应用中没有空格,这是我发布问题时的错误。以前我尝试过,但也遇到了这个错误:System.Data.dll 中发生了“System.Data.OleDb.OleDbException”类型的未处理异常附加信息:查询表达式中的语法错误(缺少运算符)感谢您的建议!
标签: c# sql winforms inner-join