3

他の人から継承したアプリケーションを使い始めたばかりですが、問題が発生しています。アプリケーションはC#で記述されており、3.5フレームワークに対してVS2010で実行されます。DBクエリを作成するときにパラメータを参照する方法が認識されないため、アプリケーションを実行してデバッグすることができません。

たとえば、SQLまたはDB2クエリがある場合は、次のように記述されます。

using (SqlCommand command = new SqlCommand(
    "SELECT Field1 FROM Table1 WHERE FieldID=@FieldID", SQLconnection))
{
    command.Parameters.AddWithValue("FieldID", 10000);
    SqlDataReader reader = command.ExecuteReader();
    ...

「parameters.AddWithValue( "FieldID"、10000);」に気付く場合 ステートメントには、元のコマンドテキストの「@」記号は含まれていません。自分のマシンで実行すると、パラメータ「FieldID」が見つからなかったことを示すエラーメッセージが表示されます。

私はこの行を変更します:

command.Parameters.AddWithValue("FieldID", 10000);

これに:

command.Parameters.AddWithValue("@FieldID", 10000);

そして、すべてが順調です...次のSQL呼び出しにヒットし、同じエラーで爆破されるまで。明らかに、これはVisual Studio内の設定である必要がありますが、インターネット上でそれについて何も見つけることができません。SQLパラメータ追加の例の半分は「@」を含めて記述されており、残りの半分はそれを含んでいません。おそらく私は何を検索すればいいのかわからない。

最後の選択は、パラメータ名の前にある「@」を使用するようにすべてのクエリを変更することですが、これは企業の出荷を管理するために使用される輸送および運用アプリケーションであり、文字通り何千ものパラメータがあります。ディレクターの質問「進捗状況はどうですか?」に対する回答の場合、プロジェクトのROIを説明するのは困難です。たまたま「一週間頑張って、もうすぐ始めた」ということです。

誰かがこの問題に遭遇したことがありますか、または「@」なしでパラメータ名を解決できるようにこの設定をオフにする方法を知っていますか?

4

2 に答える 2

1

成功!System.Data は、.NET ソリューションを作成するたびに自動的にインポートされます。この参照を削除して再度追加し、このライブラリの最新バージョンを使用して問題を修正したことを確認しました。私は、最初に取り込まれたこのライブラリの古いバージョンを持っていたに違いありません...私が理解できることだけです。

于 2011-04-05T19:59:36.863 に答える
0

Visual Studio ではなく、.NET Framework データ プロバイダーによって処理されます。

データソースによって異なります。ここを見てください:パラメータープレースホルダーの操作

System.Data.Odbcプロバイダーと連携して、question mark (?)プレースホルダーを使用してみることができます。チオスの場合、クエリにあるのと同じ順序でパラメーターを追加することを忘れないでください。

于 2011-04-04T13:53:17.777 に答える