C# 试图通过SQL从另一个表获取ID插入access数据库

C# 试图通过SQL从另一个表获取ID插入access数据库,c#,ms-access-2010,sql-insert,C#,Ms Access 2010,Sql Insert,Access数据库中有两个表: tbl机器 字段: 机械人 机器描述 TBL问题 田地 问题人物 机械人 问题描述 我试图在tblProblem中添加一条新记录,使用MachineDescription从tblMachine中查找MachineID 但是,我的SQL语句在子select语句上抛出一个错误 以下是我的声明: string sql = "INSERT INTO tblProblem" + " ([MachineID], [ProblemDescri

Access数据库中有两个表:

  • tbl机器
  • 字段:
  • 机械人
  • 机器描述

  • TBL问题

  • 田地
  • 问题人物
  • 机械人
  • 问题描述
我试图在tblProblem中添加一条新记录,使用MachineDescription从tblMachine中查找MachineID

但是,我的SQL语句在子select语句上抛出一个错误

以下是我的声明:

string sql = "INSERT INTO tblProblem" +
                " ([MachineID], [ProblemDescription], [ProblemOrder])" +
                " VALUES (" + 
                "(SELECT ([MachineID] FROM tblMachine WHERE MachineDescription = @MachineDescription))," +
                " @ProblemDescription, @ProblemOrder);";
突出的问题是这一部分:

"(SELECT ([MachineID] FROM tblMachine WHERE MachineDescription = @MachineDescription)),"

我做错什么了吗?它告诉我有一个语法错误…

额外的一组括号,可能还有不合格的字段名:

String sql = "INSERT INTO tblProblem " + 
    "([MachineID], [ProblemDescription], [ProblemOrder])" +
    "SELECT tblMachine.[MachineID], @ProblemDescription, @ProblemOrder " +
    "FROM tblMachine " +
    "WHERE tblMachine.MachineDescription = @MachineDescription";

额外的一组括号,可能还有非限定字段名:

String sql = "INSERT INTO tblProblem " + 
    "([MachineID], [ProblemDescription], [ProblemOrder])" +
    "SELECT tblMachine.[MachineID], @ProblemDescription, @ProblemOrder " +
    "FROM tblMachine " +
    "WHERE tblMachine.MachineDescription = @MachineDescription";

仍在获取:查询表达式“SELECT(tblMachine。[MachineID]FROM tblMachine WHERE tblMachine。[MachineDescription]=@MachineDescription]”中的语法错误。好的,我再也没有收到错误了,它似乎过得很好,但当我检查数据库时,没有添加新记录。请说明问题所在-我正在使用oleDB,现在我有了一个mySQL服务器,这句话非常有效。。。太晚了,谢谢:)仍然得到:查询表达式“SELECT(tblMachine。[MachineID]FROM tblMachine WHERE tblMachine。[MachineDescription]=@MachineDescription]”中的语法错误。好的,我再也没有收到错误了,看起来很好,但是当我检查数据库时,没有添加新的记录,这说明了问题所在-我使用的是oleDB,现在我有了一个mySQL服务器,并且该语句工作得非常好。。。太晚了,谢谢:)