8

sqldatasource以下のコードのように'sselectcommandパラメータの値を設定しようとしていますが、@ClientIDうまくいきません。

私のコード:

Dim strCommand = "SELECT caller_id, phone, name, email FROM callers WHERE client_id=@ClientID"

SqlDataSource2.SelectCommand = strCommand

SqlDataSource2.SelectParameters.Add("@ClientID", iClientID) 

私は何が間違っているのですか?

4

8 に答える 8

8

機能させるための秘訣は、使用しようとしているパラメーターを追加する前に削除することです。コードの次の適合バージョンが機能するはずです。

' NOTE that there is no "@" sign when you use your parameters in the code
Parameter p = strCommandSqlDataSource2.SelectParameters["ClientID"]
strCommandSqlDataSource2.SelectParameters.Remove(p)
strCommandSqlDataSource2.SelectParameters.Add("ClientID", iClientID)

使用法のコード部分でパラメーターに名前を付ける場合は、「@」記号を使用しないでください。SQLCOMMAND 文字列でのみ使用してください。

それが役に立てば幸い。

于 2009-10-10T20:06:29.237 に答える
3

パラメータの値は次のように設定できます。

SqlParameter parameter1 = new SqlParameter("@ClientID", SqlDbType.BigInt);
parameter1.Value = 32;
SqlDataSource2.SelectParameters.Add(parameter1);
于 2009-06-12T19:36:15.617 に答える
2

気にしないでください...別のコントロールの値を取るようにデータソースのパラメーターを構成しました..

于 2009-06-12T21:17:29.213 に答える
1

WYSWIG エディターを使用してデータ ソースを作成し、SQL パラメーターをプログラムで更新する場合は、次の手順を実行する必要があります。

Dim strCommand = "SELECT caller_id, phone, name, email FROM callers WHERE client_id=@ClientID"

SqlDataSource2.SelectCommand = strCommand

**SqlDataSource2.SelectParameters.Clear();**

SqlDataSource2.SelectParameters.Add("@ClientID", iClientID)
于 2014-07-19T23:14:49.687 に答える
0

SqlDataSource の Selecting イベントで回避できます。この種のコントロールでどのようにストレスが制限されるか!!!

もう 1 つの方法は、フォームに HiddenField を追加することです。SqlDataSource はそこから値を取得できます。

于 2009-06-12T21:21:58.110 に答える
0

VBバージョンは次のとおりです。

Dim parameter As New System.Web.UI.WebControls.Parameter("ClientID", Data.DbType.Int32)
parameter.DefaultValue = 45
sqlTicketInfo.SelectParameters.Add(parameter)

VB.NET版では実際に値を設定する方法がなかったので、代わりにデフォルト値を設定しました。値が初期化されていない場合はデフォルト値が使用されるため、値を設定できないため、いずれにしても自動的にデフォルト値が使用されます。

于 2010-08-20T16:06:41.953 に答える