【问题标题】:C# Windows Forms inner join three tablesC# Windows 窗体内连接三个表
【发布时间】:2017-09-02 20:04:06
【问题描述】:

我在 C# 中的 SQL 查询有问题。

在我的数据库中,我有表:SupplierApplicationForm、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
  • 此问题与windowsforms无关,仅与编写的SQL查询有关。
  • 您遇到的错误是什么
  • 我的应用中没有空格,这是我发布问题时的错误。以前我尝试过,但也遇到了这个错误:System.Data.dll 中发生了“System.Data.OleDb.OleDbException”类型的未处理异常附加信息:查询表达式中的语法错误(缺少运算符)感谢您的建议!

标签: c# sql winforms inner-join


【解决方案1】:

这是错误的ApplicationForm.Supplier.SupplierAdress

试试这个,不知道确切的字段名称:

from 
    ApplicationForm 
    inner join Supplier on ApplicationForm.Supplier=Supplier.IDSupplier 
    inner join SupplierAdress on Supplier.IdAdress =SupplierAdress.AdressID

【讨论】:

  • 我之前尝试过,但没有成功。感谢您的建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-01-08
  • 1970-01-01
  • 2012-12-24
  • 2022-07-11
  • 1970-01-01
  • 1970-01-01
  • 2012-08-03
相关资源
最近更新 更多