【问题标题】:Storing radio button values in database在数据库中存储单选按钮值
【发布时间】:2020-09-29 19:23:24
【问题描述】:

我有一个表格:

textbox  roomnumber    (table column number int)  
combobox roomtype      (table column type   varchar)  
textbox  phone         (table column phone  varchar)  
radiobuttons yes or no (table column free   varchar)  

我有一个带有列的表格:

int number  
varchar type  
varchar phone  
varchar free  

我必须将这些值从 windows 窗体输入到表格中。

我写了以下代码。但不明白如何在插入查询中获取单选按钮值。

string free = "";

if (rbyes.Checked)
{
    free = "yes";
}
else if (rbno.Checked)
{
    free = "No";
}

SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "insert into rooms values(number='" + txtroomno.Text + "',type = '" + cbroomtype.SelectedValue.ToString() + "',phone='" + txtphone.Text + "',free)";
cmd.ExecuteNonQuery();
MessageBox.Show("record inserted succeessfully");

提前谢谢你

【问题讨论】:

  • 如果 free 是 bit,你可以简单地存储一个布尔值。我强烈建议您参数化查询以防止 SQL 注入。

标签: c# visual-studio windows-forms-designer backup-sqldatabase


【解决方案1】:

INSERT 语句不太正确。您需要在插入时定义要在表格上设置的列。然后,您可以使用以下内容添加参数化值:

string free = "no";

if (rbyes.Checked)
{
    free = "yes";
}

SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = @"insert into rooms(number, type, phone, free)
                    values(@number, @type, @phone, @free)";
cmd.Parameters.AddWithValue("@number", txtroomno.Text);
cmd.Parameters.AddWithValue("@type", cbroomtype.SelectedValue.ToString());
cmd.Parameters.AddWithValue("@phone", txtphone.Text);
cmd.Parameters.AddWithValue("@free", free);

try {
  cmd.Open();
  cmd.ExecuteNonQuery();

  MessageBox.Show("Record inserted successfully");
}
catch (SqlException ex) {
  MessageBox.Show("An error has occurred: " + ex.Message, 
                   "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

如果您对数据库表架构有任何控制权,我建议您将free 列更改为bit 类型。从长远来看,这最终将节省空间。那么它只是存储一个布尔值而不是一个字符串/varchar。

【讨论】:

  • 非常感谢您的快速回复
  • @LMS 如果此答案解决了您的问题,您可以点击 标记此案例已解决。
猜你喜欢
  • 2016-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多