在这段代码之前,做查询检查是否重复
string sqlstr = "INSERT INTO [Actor] ( [FilmID] ,[FilmWorkerID] ,[Post] ) VALUES ('" + FilmID + "','" + FilmWorkerID + "','" + Post + "')";
sqlcon = new SqlConnection(strCon);
sqlcom = new SqlCommand(sqlstr, sqlcon);
sqlconOpen();
sqlcomExecuteNonQuery();
您好,使用数据库可以高效且条理分明地存储数据,它使人们能够更加迅速和方便地管理数据,主要体现在以下几个方面:
1) 数据库可以结构化存储大量的数据信息,方便用户进行有效的检索和访问。
数据库可以对数据进行分类保存,并且能够提供快速的查询。例如,我们平时使用百度搜索内容时,百度也是基于数据库和数据分类技术来达到快速搜索的目的。
2) 数据库可以有效地保持数据信息的一致性、完整性、降低数据冗余。
可以很好地保证数据有效、不被破坏,而且数据库自身有避免重复数据的功能,以此来降低数据的冗余。
3) 数据库可以满足应用的共享和安全方面的要求,把数据放在数据库中在很多情况下也是出于安全的考虑。
例如,如果把所有员工信息和工资数据都放在磁盘文件上,则工资的保密性就无从谈起。如果把员工信息和工资数据放在数据库中,就可以只允许查询和修改员工信息,而工资信息只允许指定人(如财务人员)查看,从而保证数据的安全性。
4) 数据库技术能够方便智能化地分析,产生新的有用信息。
例如,超市中把物品销售信息保存在数据库中,每个月销售情况的排名决定了下半月的进货数量。数据库查询的结果实际上产生了新的数据信息。
常见并发一致性问题包括:丢失的修改、不可重复读、读脏数据、幻影读(幻影读在一些资料中往往与不可重复读归为一类)。
丢失修改
下面先来看一个例子,说明并发 *** 作带来的数据的不一致性问题。
考虑飞机订票系统中的一个活动序列:
甲售票点(甲事务)读出某航班的机票余额A,设A=16
乙售票点(乙事务)读出同一航班的机票余额A,也为16
甲售票点卖出一张机票,修改余额A←A-1所以A为15,把A写回数据库
乙售票点也卖出一张机票,修改余额A←A-1所以A为15,把A写回数据库
结果明明卖出两张机票,数据库中机票余额只减少1。
归纳起来就是:两个事务T1和T2读入同一数据并修改,T2提交的结果破坏了T1提交的结果,导致T1的修改被丢失。前文(214数据删除与更新)中提到的问题及解决办法往往是针对此类并发问题的。但仍然有几类问题通过上面的方法解决不了,那就是:
不可重复读
不可重复读是指事务T1读取数据后,事务T2执行更新 *** 作,使T1无法再现前一次读取结果。具体地讲,不可重复读包括三种情况:
事务T1读取某一数据后,事务T2对其做了修改,当事务1再次读该数据时,得到与前一次不同的值。例如,T1读取B=100进行运算,T2读取同一数据B,对其进行修改后将B=200写回数据库。T1为了对读取值校对重读B,B已为200,与第一次读取值不一致。
因为无论是第三方数据库还是自己的数据库,都不知道你要添加或者修改后的记录是什么内容,是否已经存在。因此我在解决这个问题的时候是根据需要,用要添加的记录的关键字或者整条记录作条件对要插入的表进行查询,如果返回记录条数大于0,说明已经存在了,提示该记录存在,否则就添加进去。步骤如下:
1检查数据合法性
2在要插入的表中检索该记录
3返回记录条数大于0,提示改记录存在
4等于0,进行相应处理。
不知道你要解决的是不是这样的问题,希望对你有所帮助。
///sqlite数据表建立唯一限制就行了么
///sql代码如下:
CREATE TABLE "main""film" (
"filmno" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
"filmname" TEXT(100),
"language" TEXT(10),
"type" TEXT(10),
CONSTRAINT "不重复规则" UNIQUE ("filmname", "language") ON CONFLICT REPLACE/就这段是重点/
)
;
以上就是关于asp.net避免添加重复数据的问题全部的内容,包括:asp.net避免添加重复数据的问题、为什么要有数据库、数据库 这个调度是否避免读脏数据不可重复度和丢失修改等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)