2

次のコードがあります。

 public void GetParameterSelectionSet(int wire, int bond, string processProgramPath)
    {

        string connectionString = "Provider=Microsoft.JET.OLEDB.4.0;" + "data source=" + processProgramPath + ";";
        using (OleDbConnection connection = new OleDbConnection(connectionString))
        {
            connection.Open();
            using (OleDbCommand command = new OleDbCommand("SELECT * " +
                                                        "FROM BONDS INNER JOIN WIRES on " +
                                                        "BONDS.WireID = WIRES.WireID " +
                                                        "WHERE (WIRES.OperationOrder =  '@WireOrder') AND" +
                                                        "(BONDS.OperationOrder = '@BondOrder')", connection))
            {
                command.Parameters.Add(new OleDbParameter("@WireOrder", OleDbType.Numeric));
                command.Parameters.Add(new OleDbParameter("@BondOrder", OleDbType.Numeric));
                command.Parameters["@WireOrder"].Value = wire;
                command.Parameters["@BondOrder"].Value = bond;


                var mytemp = command.ExecuteScalar();
            }
        }

    }

このクエリを実行すると、「条件式のデータ型が一致しません」というメッセージが表示されます。

WIRES.OperationOrder と BONDS.OperationOrder はどちらも Numeric 型です。そのため、なぜこれが失敗するのかわかりません。

前もって感謝します!

4

1 に答える 1