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 回答