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#,还不是很懂。我只知道要在写入数据只前先进行对比,但不知道代码怎么写。谢谢各位了。
如果HasRows则获取ID修改数据
否则插入
或调用存储过程,实体类
BEGIN
INSERT INTO .........
END
ELSE
BEGIN
UPDATE ........
END
if !exist 这样写有问题,提示错误了
不是 if !exist(select * from tableName where id = XX)
是 if( not exists(select * from tableName where id = XX))
if not exists(select 1 from table where id=@id)
insert into
else
update
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();如何修改这段代码呢?在写入的时候先对比。