如何避免在我的数据库中有重复的数据?

噢!嗨

我有一个数据库,用户可以在其中跟踪进入商店的新模型,但他们只保留每个模型中的一个,我不确定如何阻止用户重复相同的模型。我在这个网站上看到了一些以前的答案,但在我自己的代码中使用时出现错误。

  private void check_Click(object sender, EventArgs e)
    {
               string query = "INSERT INTO tbl_phones(model) VALUES(@model)";

               using (SqlConnection sqlconn = new SqlConnection(@""))
               using (SqlCommand comm = new SqlCommand(query, sqlconn))
                {
                    sqlconn.Open();
                    comm.Parameters.Add("@model, SqlDbType.NVarChar).Value = phoneinput.Text;

                    comm.ExecuteNonQuery();
奥利弗道尔顿

这应该可以工作(获取输入模型的电话数量,如果少于一个则插入)。

private void check_Click(object sender, EventArgs e)
{
    string insertQuery = "INSERT INTO tbl_phones(model) VALUES(@model)";
    string checkQuery = "SELECT COUNT(*) FROM tbl_phones WHERE model = @model";

    using (SqlConnection sqlconn = new SqlConnection(@""))
    {
        sqlconn.Open();

        SqlCommand checkCommand = new SqlCommand(checkQuery, sqlconn);
        checkCommand.Parameters.AddWithValue("@model", phoneinput.Text);

        if((int)checkCommand.ExecuteScalar() < 1)
        {
            SqlCommand insertCommand = new SqlCommand(insertQuery, sqlconn);
            insertCommand.Parameters.AddWithValue("@model", phoneinput.Text);
            insertCommand.ExecuteNonQuery();
        }
    }
}

编辑 - 如果您决定将模型设置为主键,您可以像这样捕获异常 -

private void check_Click(object sender, EventArgs e)
{
    string insertQuery = "INSERT INTO tbl_phones(model) VALUES(@model)";

    using (SqlConnection sqlconn = new SqlConnection(connectionString))
    {
        sqlconn.Open();

        SqlCommand insertCommand = new SqlCommand(insertQuery, sqlconn);
        insertCommand.Parameters.AddWithValue("@model", "test");

        try
        {
            insertCommand.ExecuteNonQuery();
        }

        catch(SqlException ex)
        {
            if (ex.Number == 2627)
            {
                // Phone already exists, do some stuff
            }

            else throw;
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我的数据库中有重复值,如何只获取一个

如何避免有人获取我的数据库?

当我在数据库中有以下类型的数据时如何检索数据?

如何构造数据库以避免表中重复

如何避免从数据库中检索重复的值?

如果我的数据库中有很多数据,如何只回显我的数据一次

我的数据库中有这么多值

oracle数据库避免重复状态

创建我的第一个 NoSQL 数据库 - 避免数据重复?

当我的html中有两个不同的名称时,如何在数据库中插入数据?

当我们在MySQL数据库中有关系约束时如何插入数据

如果数据库中有表

如何验证我的数据库中是否有重复的记录?

如何创建正确的数据库结构以避免重复数据

将数据插入sqlite数据库时如何避免重复值?

如何避免在Ruby on Rails中数据库中的重复数据

向数据库中插入数据时如何避免重复

使用asp.net在数据库中插入数据时如何避免重复值?

Laravel在数据库中有1条记录时显示重复项

如何避免数据库死锁

我在数据库播种器中有这个错误,不知道如何解决?

显示所有尚未避免的SQL Server [Moodle] [PHP]中数据库列记录的重复

避免多模式数据库上的代码重复

带python的sqlite3数据库避免重复

避免数据库重复 - Vb.net

避免在PHP中从数据库显示重复结果

网络pojo类和数据库实体类,如何避免重复

如何避免表单中文本字段中的数据库重复

如何通过打开/关闭数据库用例(上下文管理)避免代码重复?