日期:2014-05-20  浏览次数:20424 次

判断数据库中有数据就更新数量 没有就插入数据??
我在写热门搜索`
思路是用一张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{更新;}