private void button1_Click(object sender, EventArgs e)
        {
            string dq = textBox1.Text;//地区
            string qj = textBox2.Text; //起价
            string kg_5 = textBox3.Text; //5公斤内续费
            string kg_50 = textBox4.Text; //50公斤内续费
            string kg_100 = textBox5.Text;  //100公斤内续费
            string kg_100up = textBox6.Text; //100公斤以上
                        if (dq == "" || isNumberR(qj) == false || isNumberR(kg_5) == false || isNumberR(kg_50) == false || isNumberR(kg_100) == false || isNumberR(kg_100up) == false)
            {
                MessageBox.Show("错误:请正确填写所有数据", "出错了");
                return;
            }
            else
            {           
                string insertText = "insert into data(dq,qj,kg_5,kg_50,kg_100,kg_100up) values('" + dq + "','" + qj + "','" + kg_5 + "','" + kg_50 + "','" +kg_100 + "','" + kg_100up + "')";
                con.Open();
                cmd.CommandText = insertText;
                cmd.Connection = con;
                cmd.ExecuteNonQuery();
                con.Close();
                MessageBox.Show("数据添加成功!", "成功");
                //刷新显示
                this.dataTableAdapter.Fill(this.dbDataSet1.data);
   
            }
        }目前的问题是数据可以写入数据库,但是如果重复写入一样的东西,它也照样加入。我是想在入库的时候先对比下,如果数据库中已经有dq和当前要写入的dq数据是一样的,则不另外新加一行,而是直接修改这条数据。比如数据库里已经存在一条数据:四川省 10 5 4 3 2 ,当要写入的数据为:四川省 12 6 5 4 3 时,则不另行添加新行,而是直接改写这行为新的数据,如果没有相同的话才插入新行并记录数据。麻烦帮我修改下代码,刚接触c#,还不是很懂。我只知道要在写入数据只前先进行对比,但不知道代码怎么写。谢谢各位了。

解决方案 »

  1.   

    先查询获取数据为sqldatareader,
    如果HasRows则获取ID修改数据
    否则插入
    或调用存储过程,实体类
      

  2.   

    if !exist(select * from tableName where id = XX)
    BEGIN
    INSERT INTO .........
    END
    ELSE
    BEGIN
    UPDATE ........
    END
      

  3.   


    if !exist 这样写有问题,提示错误了
      

  4.   

    不是 exist。是exists
    不是 if !exist(select * from tableName where id = XX)
    是   if( not exists(select * from tableName where id = XX))
      

  5.   


    if not exists(select 1 from table where id=@id)
        insert into
    else
        update 
      

  6.   


    string insertText = "insert into data(dq,qj,kg_5,kg_50,kg_100,kg_100up) values('" + dq + "','" + qj + "','" + kg_5 + "','" + kg_50 + "','" + kg_100 + "','" + kg_100up + "')";
                    con.Open();
                    cmd.CommandText = insertText;
                    cmd.Connection = con;
                    cmd.ExecuteNonQuery();
                    con.Close();如何修改这段代码呢?在写入的时候先对比。