c#数据库接口检查SQL重复

本文关键字:SQL 重复 检查 接口 数据库 | 更新日期: 2023-09-27 18:11:52

好的,我为一个汽车经销商建立了一个库存系统,它有能力向系统添加新车,现在我需要添加一个功能,如果经销商在一个汽车REG类型已经在数据库中,它会弹出一个错误消息框。

我该怎么做呢?

下面是代码:
MySqlCommand cmd = new MySqlCommand();
            String carManufacture = textBoxCARManufac.Text.ToUpper();
            String carModel = textBoxCARModel.Text.ToUpper();
            String carColour = textBoxCarBodColo.Text.ToUpper();
            int carMileage = int.Parse(textBoxCArMillea.Text);
            int carYearReg = int.Parse(textBoxCARREGYear.Text);
            String carReg;
            String fuel = textBoxCARFuel.Text.ToUpper();
            int carEng = int.Parse(textBoxCarEngSize.Text);
            float carprice = float.Parse(textBoxCARPrice.Text);
            float carTaxcost = float.Parse(textBoxCArTax.Text);
            carReg = Regex.Replace(textBox1CARregplate.Text, " ", "").ToUpper();
            try
            {
                cmd.CommandText = "INSERT INTO stockList (Manufacturer,CarModel,BodyColour,AquiredMileage,RegistartionYear,CarRegistration,FuelType,EngineSize,Price,CarTaxCost12Months) VALUES (@Manufacturer, @carModel, @carColour, @carMileage, @carYearReg, @carReg, @fuel, @carEng, @carPrice, @carTaxCost)";
                cmd = SDS1.Prepare(cmd);
                cmd.Parameters.AddWithValue("@Manufacturer", carManufacture);
                cmd.Parameters.AddWithValue("@carModel" , carModel);
                cmd.Parameters.AddWithValue("@carColour" , carColour);
                cmd.Parameters.AddWithValue("@carMileage" , carMileage);
                cmd.Parameters.AddWithValue("@carYearReg" , carYearReg);
                cmd.Parameters.AddWithValue("@carReg" , carReg);
                cmd.Parameters.AddWithValue("@fuel" , fuel);
                cmd.Parameters.AddWithValue("@carEng" , carEng);
                cmd.Parameters.AddWithValue("@carPrice" , carprice);
                cmd.Parameters.AddWithValue("@carTaxCost", carTaxcost);

                SDS1.Query(cmd);
            }
            catch (Exception ex)
            {
                Console.WriteLine("ERROR: " + ex);
            }

        }

c#数据库接口检查SQL重复

我建议您首先确保数据库中没有两个相同的汽车注册。

我假设,在您的场景中,汽车注册是唯一的键。您可以在表上创建一个unique key约束。由于这可能是表中的定义列,因此应该在汽车注册列上创建一个所谓的primary key:

ALTER TABLE stockList
ADD CONSTRAINT PK_stockList_CarRegistration PRIMARY KEY (CarRegistration)

现在,如果第二次插入相同的键,数据库将抛出异常。

你需要捕获这个异常,并告诉用户他做错了什么。

如果您想要一个舒适的UI,您可能希望从数据库中加载所有现有的汽车注册,并告诉他在用户键入所有其他字段之前,这个注册已经存在。