判断数据库中有数据就更新数量 没有就插入数据??
我在写热门搜索`
思路是用一张SQL表 存用户能搜到结果大于1的搜索字
但遇到一问题就是如果数据库中已经有了该关键字那不就重复了?
我的代码这样写的`:
int newcount = 1;
try
{
SqlCommand upcount = new SqlCommand( "update aspnet_HotSearch set Count = Count+1 Where KeyWord= ' " + key + " ' ",mysqlSqlConnection);
upcount.ExecuteNonQuery();
}
catch
{
SqlCommand intoKey = new SqlCommand( "insert into aspnet_Hot(Key,Count) value( ' " + key + " ', ' " + newcount + " ') ", mysqlSqlConnection);
intoKey.ExecuteNonQuery();
}
但无用 所以请教下`该如何写`
顺便看看热门搜索`有没有更好的思路?
------解决方案--------------------写成存储过程,在存储过程里判断
------解决方案--------------------怎么能用try...catch来判断呢,你不要效率么.
把插入跟更新分别写成方法.用IF去判断该调用哪个
------解决方案--------------------lz写个触发器,在每次插入的时候检查是否已经存在要插入的数据,如果存在则更新改记录
------解决方案--------------------写过存储过程,利用存储过程的返回值来判断是更新还是插入
------解决方案--------------------up..
------解决方案--------------------写3个方法:查找,更新,插入
先用查找判断存不存在,一般不存在会返回-1,存在会返回找到的条数;
然后用
if(num==-1){插入;}else{更新;}