错误[42000] [Microsoft] [ODBC Visual FoxPro驱动程序]语法错误

时间:2011-03-10 07:31:16

标签: c# datetime insert odbc

HY
我想插入ODBC,我有错误:ERROR [42000] [Microsoft] [ODBC Visual FoxPro驱动程序]语法错误。
我的代码是:

string number;

insertStatement = "INSERT INTO " + tabela + " (Data, Fetr, Fldo, Nrdo, Dii) " +
        " VALUES ( "+ "@data" +", 'cc','CD', " +  number + ","+ dii + ")";

       OdbcCommand cmd = new OdbcCommand(insertStatement, this.connection);             

        cmd.Parameters.Add("@data",OdbcType.DateTime).Value = data;

        cmd.ExecuteNonQuery();

问题在于数据,但我无法弄清楚问题是什么 有人能帮帮我吗? 感谢

1 个答案:

答案 0 :(得分:1)

尝试用?而不是查询中的@data,如下所示:

insertStatement = "INSERT INTO " + tabela + " (Data, Fetr, Fldo, Nrdo, Dii) " +
        " VALUES ( ? , 'cc','CD', " +  number + ","+ dii + ")"; 

Msdn说:

  

当CommandType设置为Text时,   用于ODBC的.NET Framework数据提供程序   不支持传递命名   SQL语句或参数的参数   由...调用的存储过程   的OdbcCommand。在任何一种情况下,   使用问号(?)占位符。

<强>更新 您可以尝试使用此格式{ d '2011-03-10' }直接在插入中连接日期(请参阅ODBC Datetime Format以供参考)并删除参数。

insertStatement = "INSERT INTO " + tabela + " (Data, Fetr, Fldo, Nrdo, Dii) " +
            " VALUES ( { d '" +
            data.ToString("yyyy-MM-dd") 
             + "' } , 'cc','CD', " +  number + ","+ dii + ")";