问题描述
我有以下表格:
blabla
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)
我必须从Windows窗体中将这些值输入表中。
int number
varchar type
varchar phone
varchar free
提前谢谢
解决方法
INSERT语句不太正确。插入时,需要定义要在表上设置的列。然后,您可以使用以下内容添加参数化的值:
class Rotate2D
{
public:
float cosA,sinA;
Rotate2D(const float radRot,const float scale=1.0f)
: cosA(scale*cos(radRot)),sinA(scale*sin(radRot)){};
template<typename T>
inline Point2DF map(const T &pt) const
{
return Point2DF(cosA*pt.cx() - sinA*pt.cy(),sinA*pt.cx() + cosA*pt.cy());
}
};
如果您对数据库表架构有任何控制权,建议您将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
类型。从长远来看,这最终将节省空间。那么它将只是存储一个布尔值而不是一个字符串/ varchar。