【发布时间】:2017-08-27 11:48:24
【问题描述】:
我尝试在表中插入组合框值我试试这个
public void additem(string name,int cost,int f)
{
con.Open();
cmd = new SqlCommand("insert into Item(ItemName,ItemCost,ItemCategoryIdF)values(@ItemName,@ItemCost,@ItemCategoryIdF)", con);
cmd.Parameters.AddWithValue("@ItemName", name);
cmd.Parameters.AddWithValue("@ItemCost", cost);
cmd.Parameters.AddWithValue("@ItemCategoryIdF", f);
cmd.ExecuteNonQuery();
}
然后点击按钮
private void button1_Click(object sender, EventArgs e)
{
con.Open();
string name = textBox1.Text;
int cost = Convert.ToInt32(textBox2.Text);
int f = Convert.ToInt32(comboBox1.Selectedvalue);
Items ab = new Items();
ab.additem(name, cost, f);
cmd.ExecuteNonQuery();
MessageBox.Show("Item Is Inserted!");
con.Close();
}
此插入成功,但是当我签入表时 f 值显示 0 和 0 值已插入表中......那么我如何从 comboBox1in 表中插入选定的值?
当我从组合框中选择值时,该值应该在 f .. 假设组合框中的值是芯片、糖果、饼干,所以如果我选择饼干,那么 f 值应该 b 2 因为芯片 1 ,糖果 2 和饼干 3
更新了代码,但显示错误
**Additional information: Cannot bind to the new display member.**
我在组合框中加载的值
private void Item_Load(object sender, EventArgs e)
{
Global.objCon = new SqlConnection(Global.con);
Global.sqlquery=("select CategoryId,CategoryName from Category");
Global.objCon.Open();
Global.objcmd = new SqlCommand(Global.sqlquery, Global.objCon);
Global. dr = Global.objcmd.ExecuteReader();
ArrayList arr = new ArrayList();
while(Global.dr.Read())
{
AddItem obj=new AddItem(Convert.ToInt16(Global.dr["CategoryId"]),Global.dr["CategoryName"].ToString());
arr.Add(obj);
}
reader.Close();
Global.objCon.Close();
comboBox1.DataSource = arr;
comboBox1.DisplayMember = "CategoryName";
comboBox1.ValueMember = "Categoryid";
}
任何帮助
【问题讨论】:
-
f 的原始值是多少?并且无需在按钮单击事件中打开 sql 连接并再次调用 ExecuteNonQuery ,而您已经在 addItem 方法中执行此操作。
-
f 值来自组合框,我评论说执行非查询
-
在下面查看我的答案。
标签: sql winforms combobox insert