C#插入数据库,不能重复!!

C#插入数据库,不能重复!!,第1张

 protected void submit_Click(object sender, EventArgs e)

    {

       string code;

       code = ConvertToString(thisTextBox1Text);

       SystemTextRegularExpressionsRegex regex = new SystemTextRegularExpressionsRegex(@"'", SystemTextRegularExpressionsRegexOptionsIgnoreCase);

       code = regexReplace(code, " "); 

       

        SqlConnection conn = new SqlConnection("Data Source=;Initial Catalog=CodeRead;uid=sa;pwd= ");

        connOpen();

        string sql = "select Count(1) from code where numble=('" + code + "')";

        SqlCommand cmd1 = new SqlCommand(sql, conn);

        int count = (int)cmd1ExecuteScalar();

        if (count > 1)

        

            ResponseWrite("数据重复!");

            

        

        else

        {

            SqlCommand cmd = new SqlCommand("insert into code(numble) values('" + code + "')", conn);

            

            cmdExecuteNonQuery();

            if (cmdExecuteNonQuery() > 0)

                ResponseWrite(code + "数据导入成功!");

            else

                ResponseWrite("数据导入错误!");

            

            connClose();

        }

您好:

只要在该列设置唯一约束即可。

alter table 表名 

add constraint 约束名 unique (列名)

可按照上面的语句来设置唯一约束。。。

在不可重复读里进行重复读 *** 作,不一定有问题,这个由业务决定,实际上很多业务场景重复读不一样的数据,(后一次是最新数据)是对的,反而重复读取的数据一样的话是错的。

当设置事务隔离级别为不可重复读时,在事务代码里是可以重复读 *** 作的,这个看上去很矛盾, 就像十字路口竖立了一个牌子,上面写着“不可闯红灯”,但是其实你硬要闯也是可以的,那个提示只是告诉你有可能出现危险!这里一样的道理,在“不可重复读”等级下进行了重复读其实也是可以的,mysql本身不会因为你重复读强制报错或终止,但是可能会因为重复读导致问题,也有可能没有问题,并不是说一定会出错,有些场景,两次读不一样,第二次获取到的是最新的数据,确实可能是好的,反而有些场景重复读数据保持一样(明明后边数据被别的事务更新了)可能出错。

至于哪些场景这样会有问题,我觉得应该是那种生成瞬时数据的场景,比如今天12:00:00网站访问量是1000,有个事务正要拿这个时间点的1000处理,然后返回生成一个报表,这个时候,另一个事务把这个1000改成了2000,但这个2000是12:00:01的访问量,这种场景,重复读就有问题,因为不精确了。但有的场景,比如只要求生成最新的报表,不要求时间,越新越好,这里重复读又没问题,还有类似余额处理,如果是像楼上说的刷卡场景,那种update 两次读取不一样(后边是最新数据)我觉得才是对的,所以需要根据业务场景,有了正确的隔离等级还要配合适当的代码才能决定是对还是错 。

1、数据库设计问题:批次属性是根据特定规则生成的,如生产日期、生产批次号等。数据库中没有对这些属性进行唯一性约束或索引,会导致重复插入相同记录。

2、逻辑错误:由于程序代码实现不严密,没有考虑到特定情况下的数据校验和异常处理,造成了重复插入相同记录的问题。

3、数据输入错误:当 *** 作员不小心将相似但不完全相同的批次属性插入到数据库中时,也会发生出现重复记录的情况。

以上就是关于C#插入数据库,不能重复!!全部的内容,包括:C#插入数据库,不能重复!!、怎么把数据库的某列值设置成不可以重复、数据库中的不可重复读问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9783951.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存