-3

以下のコードから選択したラジオボタンの値を取得する方法

protected void Page_Load(object sender, EventArgs e)
{
     string query="select top 0.1 percent Title, Answer1, Answer2, Answer3, Answer4 from [Question] order by newid()" ;
     SqlCommand cmd=new SqlCommand(query,con);
     con.Open();
     SqlDataReader dr=cmd.ExecuteReader();
     if(dr.Read())
     {
         rbList1.Items.Add(dr[0].ToString());
         rbList1.Items.Add(dr[1].ToString());
         rbList1.Items.Add(dr[2].ToString());
         rbList1.Items.Add(dr[3].ToString());
     }
     else
     {
         MessageBox.Show("Some Proble Occure !");
     }
     con.Close();
}
4

2 に答える 2

1

これらを試してください

rbList1.SelectedIndex // Gets the index of the currently selected item

rbList1.SelectedItem // Gets the currently selected item

rbList1.SelectedValue // Gets the value of the currently selected item

于 2013-02-19T14:22:09.300 に答える
1

最初にいくつかの提案:

  • ポストバックごとにRadioButtonListfromをデータバインドしないでください。プロパティを確認してください。そうしないと、イベントがトリガーされず、選択したアイテムを取得できません。Page_LoadIsPostBack
  • using特に System.Data 名前空間で を実装するものには -statement を使用してIDisposable、すべての管理されていないリソース (接続など) が破棄/閉じられるようにします。
  • for allを使用する代わりに、 DbDatareaderlikeGetIntまたはの適切なメソッドを使用します (フィールドが null の場合にも例外がスローされます)。GetStringToString

string query = "select top 0.1 percent Title, Answer1, Answer2, Answer3, Answer4 from [Question] order by newid()";
using (var con = new SqlConnection("YourConnectionString"))
using (var cmd = new SqlCommand(query, con))
{
    con.Open();
    using (var dr = cmd.ExecuteReader())
    {
        if (dr.Read())
        {
             rbList1.Items.Add(dr.GetString(0));
             rbList1.Items.Add(dr.GetString(1));
             rbList1.Items.Add(dr.GetString(2));
             rbList1.Items.Add(dr.GetString(3));
        }
    }
}

あなたの問題に:あなたが実際の問題について言及していないので、私にはわかりません。

以下のコードから選択したラジオボタンの値を取得する方法

次に、RadioButtonListSelectedIndexChanged-eventを処理します。

于 2013-02-19T14:23:36.137 に答える