2011-03-10 196 views
0

Hy
我想插入到ODBC,並且出現錯誤:錯誤[42000] [Microsoft] [ODBC Visual FoxPro驅動程序]語法錯誤。
我的代碼是:錯誤[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(); 

問題是與數據,但我想不出是什麼問題。
有人可以幫助我嗎?
謝謝

+0

您能指定每個變量(數字,dii)的字段和數據類型的字段數據類型嗎? – shahkalpesh 2011-03-10 07:45:19

+0

DateTime數據,雙dii,字符串數字 - 在表中的數字是類型number ..只是我有數據問題...因爲如果我插入沒有數據它的作品,但是當我把數據放入我的插入語句給我如果我放置錯誤 – user599977 2011-03-10 08:15:18

回答

1

試一試?而不是@data查詢,像這樣:

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

Msdn說:

When CommandType is set to Text, the .NET Framework Data Provider for ODBC does not support passing named parameters to an SQL statement or to a stored procedure called by an OdbcCommand. In either of these cases, use the question mark (?) placeholder.

UPDATE 你可以嘗試直接在插入串聯的日期格式{ 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 + ")"; 
+0

?而不是@data我有錯誤:錯誤[22018] [Microsoft] [ODBC Visual FoxPro驅動程序]數據類型不匹配。 – user599977 2011-03-10 08:10:10

+0

@ user599977是代碼中的數據變量DateTime? – 2011-03-10 08:16:56

+0

yes..is日期時間 – user599977 2011-03-10 08:18:14

相關問題