这个可以通过修改数据的时间来判断。
例如:
表中有个字段 读取时间。
当这个客户读取10条数据的时候,更新读取时间为当前时间。
然后下个客户读取的时候,判断时间在半个小时内,没有更新的数据。就OK了。
不过这个也有一点不好的地方就是 很可能半小时后 第一个客户还在使用这十条数据。
如果是修改数据的话 楼主可以 把数据库表使用锁定功能,把锁住 这样就不担心重复提交的情况。
希望楼主早日解决问题~~~
在这段代码之前,做查询检查是否重复
string sqlstr = "INSERT INTO [Actor] ( [FilmID] ,[FilmWorkerID] ,[Post] ) VALUES ('" + FilmID + "','" + FilmWorkerID + "','" + Post + "')";
sqlcon = new SqlConnection(strCon);
sqlcom = new SqlCommand(sqlstr, sqlcon);
sqlconOpen();
sqlcomExecuteNonQuery();
这个很简单啊,你在添加记录前,先搜索一下数据库中是否已经存在这个记录,有就提示,没有就保存新纪录。
例子:(由于数据库 *** 作引擎不同,可能不适合你,仅仅是个例子)
rsopen
"select
from
用户表
where
用户名='"
&
username
&
"'
and
密码='"
&
password
&
"'",conn,1,1
if
rseof
then
connexecute
"insert
into
用户表
(用户名,密码)
values
('"
&
username
&
"','"
&
password
&
"')"
else
msgbox
"用户已存在!"
end
if
rsclose
如果不想每条查询一次,可以提前做一个统一查询
$sql=mysql_query("select distinct Code from test ",$conn);
$sqlvalue=[];
while($row=mysql_fetch_array($sql)){
$sqlvalue[]=$row['Code'];
}
另外 ,可以在建表的时候设置unique index,来彻底避免插入重复记录,如果没过滤好插入重复记录的时候,系统会直接报错
<%
'-------------------------数据库连接-----------------------
Set objConn = ServerCreateObject("ADODBConnection")
objConnConnectionString = "Provider=MicrosoftJetOLEDB40;" &_
"Data Source=" & ServerMapPath("datamdb")
objConnOpen
'-------------------------数据库连接-----------------------
'-------------------------检索数据-----------------------
strSQL = "SELECT id,DataColumn FROM DataTable"
'Sql语句,检索数据库
Set objRS = ServerCreateObject("ADODBRecordset")
'创建记录集 网页教学网
objRSOpen strSQL, objConn, 1, 1
'执行检索
Count=objRSRecordCount
'得到记录总数
Item=4
'显示记录数
'-------------------------检索数据-----------------------
'-------------------------------------------------------------------------------
redim a(Item, 2),t(Count)
'定义2数组,数组a用来储存记录,数组t用来删选记录
'---------------------------------------
'初始数组数值,目的为了插入数据以后和此值做比较
for each j in t
j=0
next
'---------------------------------------
'---------------------------------------
' 随机抽取记录号
Randomize timer '初始化随机数生成器
for j=1 to Item
k=int(rndCount+1) '从总数里面随机取一条记录
do while t(k)<>0 '判断是否记录是否已经在数组中
k=int(rndItem+1)
loop
t(k)=1 '第k条记录被选中
next
'--------------------------------------
j=1:i=1'定义下标
'--------------------------------------
' 循环选取数据集objRS中的部分记录存放到数组中
Do While Not objRSEof
if t(j)=1 then
a(i,1)=objRS("id") '记录id
a(i,2)=objRS("DataColumn") '记录内容
i=i+1
end if
j=j+1
objRSMoveNext
网页教学网
Loop
'--------------------------------------
'-------------------------------------------------------------------------------
'----------------------------显示内容--------------------
for i=1 to Item
Responsewrite "序号"&a(i,1)&"<br>"
Responsewrite "内容"&a(i,2)&"<p>"
next
'----------------------------显示内容--------------------
'---------------------------
'释放资源
objRsClose
set objRs=nothing
objConnClose
set objConn=nothing
'---------------------------
%>
是什么重复你可以先把这个表的其中一个字段查询出来,比如 "select id from table ", 然后在你的foreach的时候判断,
if( in_array($check, $checkarr) ) 不插入
其中,$check 是你要插入的数据(单字段),$checkarr是你上面查询的结果( 字段集)
以上就是关于C#实现多线程读取同一张数据表,用户获取不重复记录,怎么实现!全部的内容,包括:C#实现多线程读取同一张数据表,用户获取不重复记录,怎么实现!、asp.net避免添加重复数据的问题、VB对ACCESS数据库 *** 作时,为了避免重复添加记录,应该如何来做呢等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)