想通过ADO.net对一个数据库进行选择性的更新或添加记录比如如果执行select count(*) from mytable where id=myList.id查到了该条记录
就执行update mytable set number=number+1 where id=myList.id
否则就执行insert into mytable(id, number) values(myList.id, myList.number)其中myList是我在外部实现的一个ArrayList对象,所用的数据库是access
如何才能把这种选择性数据更新合并成一句语句啊,由于是用Ado.net实现,所以如果要通过select返回记录集再判断该执行update还是insert要多写好多步骤,而且开销也大,所以想请各位大大帮忙想想能不能合并成一句。
就执行update mytable set number=number+1 where id=myList.id
否则就执行insert into mytable(id, number) values(myList.id, myList.number)其中myList是我在外部实现的一个ArrayList对象,所用的数据库是access
如何才能把这种选择性数据更新合并成一句语句啊,由于是用Ado.net实现,所以如果要通过select返回记录集再判断该执行update还是insert要多写好多步骤,而且开销也大,所以想请各位大大帮忙想想能不能合并成一句。
如果删除那还怎么累加啊
aaa=Command1.excute(sql);这个会返回值赋给aaa,判断aaa的值,决定是否执行insert
insert into test(id, number) values(1, 1)
else
update test set number=number+1 where id=1
//SQL
string sql="if not exists(select * from test where id="+myList.id+") ";
sql+="insert into test(id, number) values("+myList.id+","+ myList.number+") ";
sql+="else ";
sql+="update test set number=number+1 where id="+myList.id;
//have a try
根据返回结果来执行下一条语句
__
另要说明 变量+上就行 参考我上次写的
"select count(*) from mytable where id="+myList.id
楼主就用自己得办法吧什么?数据太多,开销太大?
呵呵,那你还用access,用sqlServer或Oracle啊