0

私はac#コード行を持っています、

using (SqlDataSource sqlds = new SqlDataSource(ConnectionString(), SelectCommand()))
            {
                drop1.DataSource = sqlds;
                drop1.DataTextField = "UserName";
                drop1.DataBind();
            }

今はドロップダウンリストにデータが入力されていません。

<asp:DropDownList id="drop1" runat="server" />

SQLがデータを返しているかどうかを確認したい

改行を入れると、SQL がデータを返すかどうかを確認する方法がわかりません。gridview に select ステートメントと接続文字列を使用していますが、ドロップダウン リストでは機能しません。

4

3 に答える 3

1

ブレークポイントを設定しdrop1.DataSource = sqlds;てマウスを上に移動するsqldsと、DataSource に含まれる行数が表示されます。

于 2013-05-07T14:17:36.363 に答える
1

データソースをドロップダウンにバインドする方法は正しく、同じことがうまくいきます。

考えられるエラーは次のとおりです。

  • connectionString。正しいかどうかを確認します。
  • 選択クエリで。SelectCommand()メソッドが正しい SQL クエリを返すかどうかを確認します。

SelectedSqlDataSource のイベントを使用して、行が返されたかどうかを確認します。

   sqlds.Selected += new SqlDataSourceStatusEventHandler(sdl_Selected);

ここで、sql_Selected は次のとおりです。

  void sdl_Selected(object sender, SqlDataSourceStatusEventArgs e)
  {
      var a = e.AffectedRows;
  }

補足として-選択クエリに、SQLインジェクションを起こしやすい文字列連結が含まれていないことを確認してください。すなわちSELECT UserName from [TableName] where certainCol ="+ variable

やらないで

代わりに sql パラメータを指定SelectParametersし、SqlDataSource

于 2013-05-07T14:18:55.520 に答える