新手求解答怎么防止两个人同一时间同时注册一个账号

问题描述

protectedvoidButton1_Click(objectsender,EventArgse){stringstrconn="server=pc1234;database=WangDian;uid=sa;pwd=123456";//连接数据库SqlConnectionconn=newSqlConnection(strconn);conn.Open();SqlCommandcmd=conn.CreateCommand();cmd.CommandText="SELECTCOUNT(*)FROM管理员WHERE账号=@usernameand密码=@passwd";cmd.Parameters.Add(newSqlParameter("username",txtUserName.Text));cmd.Parameters.Add(newSqlParameter("passwd",txtPwd.Text));inti=Convert.ToInt32(cmd.ExecuteScalar());if(i>0){Response.Write("<script>alert('添加数据失败!')</script>");txtUserName.Text="";txtPwd.Text="";}else{cmd.CommandText="INSERTINTO管理员(账号,密码)VALUES(@username,@passwd)";intvar=cmd.ExecuteNonQuery();if(var>0){Response.Write("<script>alert('添加数据成功!')</script>");txtUserName.Text="";txtPwd.Text="";}conn.Close();}}}这是注册的那个按钮,怎么解决防止两个人同一时间同时注册一个账号

解决方案

解决方案二:
你可以把[账号]声明为primarykey。
解决方案三:
用程序和数据库实现随便你选啊说个简单的你在数据库建个唯一索引不就插不进去了
解决方案四:
存储过程,事务,都行总之你得保证查询和插入是在同一个过程里,避免出现脏数据
解决方案五:
同求同求,望大牛详细解答。。。。
解决方案六:
如果不考虑用户的体验,只是防止重复注册那么用楼上2位的办法当然是最简单的.当然这样一来你就无法区分到底是因为有其他用户抢先注册了账号导致插入失败,还是由于网络问题或数据库问题导致插入失败
解决方案七:
username增加唯一性约束
解决方案八:
引用6楼starfd的回复:

username增加唯一性约束

老师说不能设置约束用事务怎么做求解
解决方案九:
用事务?一定要?那就是建个存储过程,开始事务(这个要求表锁),先select有没有用户,没有才insert
解决方案十:
引用7楼u011147081的回复:

Quote: 引用6楼starfd的回复:
username增加唯一性约束

老师说不能设置约束用事务怎么做求解

有详细点的代码吗?从来没写过事务
解决方案十一:
你把查询和新增放到一个事物里应该可以吧Beginselecttable有就Rollback没有就inserttableCommit这样应该可以吧
解决方案十二:
存储过程写个吧。不会?看书去。
解决方案十三:
1、在插入前先检查是否存在2、数据库底层用主键或唯一索引确保无脏数据进入
解决方案十四:
username增加唯一性约束代码层可以加lock防止多个线程同时操作
解决方案十五:
加上唯一主键吧

时间: 2024-07-31 02:45:27

新手求解答怎么防止两个人同一时间同时注册一个账号的相关文章

网站的前台和后台要分开两个项目写吗,新手求解答

问题描述 比如我现在要做一个电子商务的系统,这个系统有前台和后台,前台主要是商品的展示,以及用户下订单什么的.后台是商品的发布,就是增删改查等,那么我这个系统要把前台和后台分开成两个项目下吗,这两个项目操作同一个数据库.如果是分开成两个项目的话,那我在后台发布商品的时候,图片上传的是在后台这个项目的某个文件夹下面,前台又该怎么去访问到这些图片呢,而且我的前台和后台是不是要用两个不同的域名?这两个域名分别指向同一个IP地址同一个端口的两个不同的工程?新手求解答,麻烦各位大虾解决下,小弟在此谢谢了!

代码-缓存流的问题,新手求解答

问题描述 缓存流的问题,新手求解答 import java.io.*; public class Student { public static void main(String[] args) { // TODO Auto-generated method stub String[] content={"好久不见","你好吗","常联系"}; File file=new File("word.txt"); try{ File

asp net mvc 上传-asp.net mvc文件上传问题,新手求解答!

问题描述 asp.net mvc文件上传问题,新手求解答! asp.net mvc文件上传问题,新手求解答!

新手求解答,如何在Windows下编译Audacity?

问题描述 新手求解答,如何在Windows下编译Audacity? 希望大神给出详细步骤.希望可以更改Audacity的代码并观看效果. 解决方案 楼主,Audacity是一个音频处理软件吧?你是要调他的功能还是做个类似的? 解决方案二: 新手求解答数据库连接(新手求解答)

新手求解答一下-新手求解答各位大神帮帮忙

问题描述 新手求解答各位大神帮帮忙 是这样的,我昨天刚刚安装了一个ocrale?11g?,但是我怎么登陆都登不上去,用sys?as?sysdba显示的是权限不足,用scott显示账户被锁,用internal显示不是有效的dba连接,我用的是win10,新手小白我真的不知道怎么办了QAQ 解决方案 记得原来登录是用的scott,密码是tiger,你这种问题没遇到过...抱歉

新手求解答一下,,,

问题描述 新手求解答一下,,, 代码求解释-!!!代码求解释-!!!代码求解释-!!!代码求解释-!!!代码求解释-!!! 解决方案 就是对List的一些操作和简单的for循环嘛 解决方案二: 就是简单对list的操作,以后慢慢就明白了. 解决方案三: 你想要解答什么,这就是一个简单的对list操作 解决方案四: stuList是一个List对象,可以往里面添加具体的实例,添加完就遍历 解决方案五: 首先在stuList中添加三个学生的信息: for循环遍历添加的学生信息: 通过设置要查找的学生

sql-MySQL 主键约束用约束名无法删除,新手求解答

问题描述 MySQL 主键约束用约束名无法删除,新手求解答 环境 MySQL5.5,如图创建一个表. 先加个主键约束 然后用约束名再删除主键约束 用约束名删除报错,后来又试了下不用约束名 这次成功了,求教大家怎么用约束名删除主键约束啊!希望能详细解答一下两者结果不同的原因,不胜感激! 解决方案 mysql 中删除约束的语法: ALTER TABLE TABLE_name DROP [COLUMN] col_name DROP PRIMARY KEY DROP INDEX index_name D

汇编语言的中断问题,新手求解答

问题描述 汇编语言的中断问题,新手求解答 关于中断问题,王爽老师书中说描述的中断过程(1)编写中断程序,并将传到内存(2)设置中断向量(3)遇到中断时执行中断程序 那么是否可以这样理解传入内存中的数据在推出程序后丢失,所以这个中断程序就不可用了? 解决方案 其实电脑开机后物理内存的每个字节都是可读写的,从来不会因为所谓的分配.释放而被创建.销毁.除非关闭电脑电源,RAM内存中的数据永远不会丢失,只会被应用程序覆盖为别的值.

安卓开发-安卓新手求解答,页面传值跳转

问题描述 安卓新手求解答,页面传值跳转 求大神指导 :在安卓开发中,在第一个界面输入数值计算,点击求值按钮时不显示答案但跳转另一界面("正在计算--"),等待数秒返回第一界面显示结果 解决方案 http://tieba.baidu.com/p/3476742007 解决方案二: 在最外层的Relativelayout里建立一个visibility:gone,长宽fillparent的layout,加入正在计算的textview,里面也可以加一个processbar控件,显示正在缓冲图片