【发布时间】:2016-12-25 08:06:00
【问题描述】:
我正在尝试根据组合框中的名称从他们的表中获取制造商、供应商、项目组 ID。意味着我根据组合框中的名称将 id 传递给变量,然后将该 id 传递给数据库。但是当我运行这个应用程序时,我得到制造商、供应商和项目组变量的相同结果。这是为什么?
之前还可以,现在不行了!我想不通!
using (SqlConnection con = new SqlConnection(CS))
{
con.Open();
SqlCommand cmd = new SqlCommand("SELECT Manufact_Id from Manufacturer Where Name=@Name1", con);
cmd.Parameters.AddWithValue("@Name1", combomanufacture_Createitem.Text);
int a = Convert.ToInt32(cmd.ExecuteScalar());
SqlCommand cmd2 = new SqlCommand("SELECT Supplier_Id from Supplier Where Supplier_Name=@Name2", con);
cmd.Parameters.AddWithValue("@Name2", combo_supplierCreateitem.Text);
int b = Convert.ToInt32(cmd.ExecuteScalar());
SqlCommand cmd3 = new SqlCommand("SELECT ItemGroup_Id from ItemGroup Where Name=@Name3", con);
cmd.Parameters.AddWithValue("@Name3", combo_itemgroupCreateitem.Text);
int c = Convert.ToInt32(cmd.ExecuteScalar());
try
{
SqlCommand cmd1 = new SqlCommand("INSERT INTO Items (Custom_Code, Name, Manufacturer, Supplier, Item_Group, Activate, Purchase_Rate, Landing_Cost, Profit_Percentage, Price_to_Customer, MRP,Opening_Stock, Manage_Stock, Description, Discount) VALUES (@Customcode, @Name, @Manufacturer, @Supplier, @Itemgroup, @Activate, @Purchasedate, @Landingcost, @Profitpercentage, @PricetoCustomer, @MRP, @Openingstock, @Managestock, @Description1, @Discount)", con);
cmd1.Parameters.AddWithValue("@Customcode", txt_customcode_Createitem.Text);
cmd1.Parameters.AddWithValue("@Name", txt_nameCreateitem.Text);
cmd1.Parameters.AddWithValue("@Manufacturer", a);
cmd1.Parameters.AddWithValue("@Supplier", b);
cmd1.Parameters.AddWithValue("@Itemgroup", c);
cmd1.Parameters.AddWithValue("@Activate", combo_activateCreateitem.Text);
cmd1.Parameters.AddWithValue("@Purchasedate", txt_purchasedateCreateitem.Text);
cmd1.Parameters.AddWithValue("@Landingcost", txt_landingcosCreateitem.Text);
cmd1.Parameters.AddWithValue("@Profitpercentage", txt_activateCreateitem.Text);
cmd1.Parameters.AddWithValue("@PricetoCustomer", txt_PricetocustCreateitem.Text);
cmd1.Parameters.AddWithValue("@MRP", txt_mrpCreateitem.Text);
cmd1.Parameters.AddWithValue("@Openingstock", txt_openingstockCreateitem.Text);
cmd1.Parameters.AddWithValue("@Managestock", combomanagestock_Createitem.Text);
cmd1.Parameters.AddWithValue("@Description1", txt_descriptionCreateitem.Text);
cmd1.Parameters.AddWithValue("@Discount", txt_DiscountCreateitem.Text);
cmd1.ExecuteReader();
MessageBox.Show("Items added Successfully");
con.Close();
}
catch (Exception e1)
{
MessageBox.Show(e1 + "Please enter valid data");
}
}
【问题讨论】:
-
旁注:由于您不希望从您的
INSERT语句返回任何数据,您应该使用cmd1.ExecuteNonQuery();来执行它(而不是.ExecuteReader()调用,它将返回一个@ 987654325@ 处理返回的结果集)
标签: c# .net sql-server winforms