0

パネルに 2 つのラジオ ボタンがあり、それらの値を数値 (0 と 1) として保存します。SQL に挿入するコードは次のとおりです。

String typdop="1";
if(rb_a.Checked)typdop="0";
("INSERT INTO zajezd(typdop)values(@typdop")
prikaz.Parameters.AddWithValue("typdop", typdop);

そして読むために私はこれを使います:

SqlCommand novyprikaz = new SqlCommand("SELECT * FROM zajezd WHERE akce="+nc_zajezd_vyber, spojeni); 
con.Open();
SqlDataReader precti = novyprikaz.ExecuteReader();

if (precti.Read())
{
     try
     {  rb_a.Checked = precti(32);}

の Checked 値を変更する方法がわからないため、ビジュアルスタジオからエラーが表示されます。次のrb_aように読みたいと思います。

データベースに保存されている場合0- チェックrb_a

1確認したい場合rb_b

誰かがこれを解決するのを手伝ってもらえますか? ありがとう

4

1 に答える 1

1

不足している詳細が多すぎますが、このコードを試すことができます。

string cmdText = "SELECT * FROM zajezd WHERE akce=@p1";
SqlCommand novyprikaz = new SqlCommand(cmdText, spojeni); 
novyprikaz.Parameters.AddWithValue("@p1", nc_zajezd_vyber);
spojeni.Open(); 
SqlDataReader precti = novyprikaz.ExecuteReader();
if (precti.Read())
{
   try
   {  
        bool check = Convert.ToBoolean(precti(32));
        if(check) 
            rb_b.Checked = true;
        else
            rb_a.Checked = true;
   }
}

注意してください。データベース フィールドに必要な正しいデータ型でない場合nc_zajezd_vyber、クエリは何も取得できない可能性があります。AddWithValue は、渡された値からパラメータのデータ型を想定します。これが正しくない場合....

同じ理由で (AddWithValue は、データベース フィールドが期待する正確なデータ型を必要とするため、挿入コードは次のようにする必要があります。

int typdop=1; 
if(rb_a.Checked) typdop=0; 
string cmdText = "INSERT INTO zajezd(typdop)values(@typdop)"; 
SqlCommand prikaz = new SqlCommand(cmdText,spojeni);
prikaz.Parameters.AddWithValue("typdop", typdop);
spojeni.Open();
prikaz.ExecuteNonQuery();
....
于 2013-07-07T14:32:54.320 に答える