VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 716|回复: 6

判断数据库中有数据就更新数量 没有就插入数据??

[复制链接]

4

主题

24

帖子

17.00

积分

新手上路

Rank: 1

积分
17.00
发表于 2020-2-11 00:00:01 | 显示全部楼层 |阅读模式
我在写热门搜索`
思路是用一张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();
        }

但无用 所以请教下`该如何写`
顺便看看热门搜索`有没有更好的思路?
回复

使用道具 举报

0

主题

29

帖子

23.00

积分

新手上路

Rank: 1

积分
23.00
发表于 2020-4-7 03:00:02 | 显示全部楼层
写成存储过程,在存储过程里判断
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-4-7 14:15:01 | 显示全部楼层
怎么能用try...catch来判断呢,你不要效率么.
把插入跟更新分别写成方法.用IF去判断该调用哪个
回复

使用道具 举报

4

主题

24

帖子

17.00

积分

新手上路

Rank: 1

积分
17.00
 楼主| 发表于 2020-4-8 02:15:02 | 显示全部楼层
哎呀`我愚也....

能不能写个例 `
回复

使用道具 举报

0

主题

3

帖子

4.00

积分

新手上路

Rank: 1

积分
4.00
发表于 2020-4-8 11:15:01 | 显示全部楼层
lz写个触发器,在每次插入的时候检查是否已经存在要插入的数据,如果存在则更新改记录
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-4-9 16:15:01 | 显示全部楼层
写过存储过程,利用存储过程的返回值来判断是更新还是插入
回复

使用道具 举报

0

主题

2

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-4-9 19:45:01 | 显示全部楼层
写3个方法:查找,更新,插入
先用查找判断存不存在,一般不存在会返回-1,存在会返回找到的条数;
然后用
if(num==-1){插入;}else{更新;}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表