在列为主键时输入重复项时显示错误消息

时间:2011-08-16 04:03:43

标签: c#

如在名为Emp的表中,我将Name Column作为主键,当我添加已经存在于数据库中的重复名称(Bharat Mali)时,此记录不会添加到数据库中,而是显示此消息(员工已添加)成功)我想向用户显示一条消息(无法存储重复值)。  我在Add按钮后面使用此代码单击

private void button3_Click(object sender, EventArgs e)
        {
            DBHandling db = new DBHandling();
            if (name.Text.Trim().Equals("")&& name.Text.Trim().Equals("select Emp.name from Emp"))
            {
                name.Focus();
                MessageBox.Show("Name cannot be blank or same!");
            }
            else if(Payment.Text.Trim().Equals(""))
            {
                Payment.Focus();
                MessageBox.Show("Payment cannot be blank!");
            }
            else if (!IsNumeric(Payment.Text.Trim()))
            {
                Payment.Focus();
                MessageBox.Show("Payment should contain Numerical Values!");
            }
                else if(CellNumber.Text.Trim().Equals(""))
            {
                CellNumber.Focus();
                MessageBox.Show("Cell Number cannot be blank!");

            }
            else if (!IsNumeric(CellNumber.Text.Trim()) || CellNumber.Text.Trim().Length<10)
            {
                CellNumber.Focus();
                MessageBox.Show("Invalid Cell Number!");
            }
            else if(JoiningDate.Text.Trim().Equals(""))
            {
                JoiningDate.Focus();
                MessageBox.Show("set Joining Date!");
            }             
            else
            {
                db.AddEmp(name.Text, Payment.Text, CellNumber.Text, Education.Text, JoiningDate.Text);
                MessageBox.Show("Employee added successfully!");
            }
            name.Clear();           
            Payment.Clear();           
            CellNumber.Clear();            
            Education.Clear();
            name.Focus();

        }

所以我应该怎么做,谢谢。

我正在使用下面这行代码检查PK,我没有得到任何答案但是甚至没有错误,你知道我应该怎么做其他方式吗?

if (name.Text.Trim().Equals("")&& name.Text.Trim().Equals("select Emp.name from Emp"))
                {
                    name.Focus();
                    MessageBox.Show("Name cannot be blank or same!");
                }

1 个答案:

答案 0 :(得分:2)

编写代码的异常方式并不好。它会降低应用程序的性能。而是检查数据库中是否已存在PK值。可能是为了让它更快你可以只拥有PK的内部数据结构并先检查那里然后如果它不在那里,更新那个加上DB