0

SqlDataSource を使用して GridView にデータを設定しています。これは、この 2 つが非常に密接に結合しているように見えるためです。このグリッドには検索の結果が表示されるため、以下のように、渡すパラメーターを参照するコード ビハインドに動的な SQL 文字列を記述しています。

sdsResults.SelectParameters.Add("CodeID", TypeCode.String, strCodeID)

私の問題は、CodeID フィールドが varchar フィールドであることです。経験があるかもしれませんが、varchar フィールドに対して評価される nvarchar フィールドを渡すと、SQL のパフォーマンスに非常に悪影響を及ぼす可能性があります。ただし、 SelectParameters.Add は TypeCode タイプのみを受け取ります。これは、実行可能なオプションとしてユニコード TypeCode.String のみを提供するようです。

SqlDataSource で varchar を使用するにはどうすればよいですか? この時点でデータ型を変更することはできません。これは 10 年前の大規模なアプリのメイン キーであり、率直に言って、varchar はアプリケーションに適しています。

4

3 に答える 3

1

ところで、私の回避策では、SqlDataSourceがパラメータをnvarcharとして渡すことができます。次に、SQLの最初の行でそのnvarchar paramを明示的にvarchar変数に変換し、代わりにスクリプトを介してその新しいvarchar変数を使用します。

しかし、それはばかげているようです。

于 2008-11-19T15:38:29.990 に答える
0

多分これはうまくいくでしょう:

using System.Data;

sdsResults.SelectParameters.Add("CodeID", SqlDbType.VarChar, strCodeID);
于 2009-01-02T14:55:06.237 に答える
0

残念ながら、System.TypeCode パラメータを渡す必要があります。SqlDbType を使用すると、コンパイル エラーが発生します。

于 2009-01-05T17:08:36.793 に答える