2017-05-09 6 views
3

このコードは間違っていますか?(?、?...?)または(@ field1、@ field2 ... @ fieldn)?

その行以降のデータが間違った変数に取得させ、場合、条件の追加の周りにあった以外、私は、

cmd.Parameters.Add("TOFnr", OdbcType.Int, 10).Value = orderId; 
cmd.Parameters.Add("LineNr", OdbcType.Int, 10).Value = maxLineNr; 
cmd.Parameters.Add("Date", OdbcType.VarChar, 8).Value = rowHeader["Date"]; 

コードが動作次に、クエリ

INSERT INTO sometable (field1,field2...fieldn) VALUES (?,?,.....?) 

を持っています。

プレースホルダ(「TOFnr」など)は、プログラマの参照にのみ使用され、SQLまたはC#自体では使用されません。

クエリで名前付きパラメータを使用するのはエラーが起こりやすいのですか?

INSERT INTO sometable (field1,field2...fieldn) VALUES (@TOFnr,@LineNr,[email protected]) 

odbcを介してborland paradoxに接続するのはC#です。

+0

現時点では、テキストコマンドまたはストアドプロシージャを使用して、名前付きクエリパラメータがODBC用.NET Framework Data Providerでサポートされていないようです:http://stackoverflow.com/questions/6338139/can-odbc-parameter-place - 所有者名は&https://msdn.microsoft.com/en-us/library/system.data.odbc.odbccommand.commandtype.aspx。つまり、ODBCを扱う際には '? 'プレースホルダを使用してください。 –

答えて

1

クエリで名前付きパラメータを使用するのは、エラーが起こりやすいのですか?

はい、そうです。残念なことに、ADO.NET ODBCドライバでは、名前付きSQLパラメータをSQL文に渡すことはできません。残念なことに、ODBCドライバを使用することはできません。

私はParadoxの専門家ではありませんが、名前付きパラメーターを許可するParadox専用のドライバーが存在する可能性があります。あなたはそこにもっと運があるかもしれません。

+0

バガー。バグ・バガー・バガー! –

関連する問題