高分请教,数据库操作简单问题

Truly 2003-08-21 10:28:21
表user有name和id字段,id为主键(自动生成)。
怎样使用户注册时name字段也没有重复值?
用户名从Name.Text获得,当数据库中已有此名时拒绝注册,没有则加入数据库,按钮代码如何写?

private void AddBtn_Click(object sender, System.EventArgs e)
{
//请完善此处代码

}
...全文
55 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
useBook 2003-08-22
  • 打赏
  • 举报
回复
小陈的方法很好。
aquariusBoy 2003-08-22
  • 打赏
  • 举报
回复
用存储过程嘛,很好用的东西干嘛不用:
create procedure [sp_insert]
(
@name as varchar(50)
)
as
if(exists(select * from [user] where name=@name))
begin
return(-1);
end
else
begin
insert into [user](name) values(@name);
return (1);

end
go
xiangzionest 2003-08-22
  • 打赏
  • 举报
回复
我同意chenhigh(小陈)的做法,认为建唯一索引是好办法。
飞行石 2003-08-22
  • 打赏
  • 举报
回复
写一个方法
CheckNewUser
里面判断用户帐号是否存在
sgsh51 2003-08-22
  • 打赏
  • 举报
回复
SqlConnection conn = new SqlConnection("server=pany;database=pany;uid=sa;pwd=123");
conn.Open();
string strSQL= "select * from user where name='" + Name.Text + "'";
SqlDataAdapter da = new SqlDataAdapter(strSQL,conn)
DataSet ds = new DataSet();
da.Fill(ds);

if(ds.Tables[0].Rows.Count==0)
{
strSQL = "INSERT INTO user (name) VALUES ( '" + Name.Text + "')";
SqlCommand myCmd = new SqlCommand(strSQL,conn);
myCmd.ExecuteNonQuery();
}
else
{
//已经存在,不可插入

}
bpy 2003-08-22
  • 打赏
  • 举报
回复
表结构这样处理:
create table Table_Name
(
nID int identity(1,1), --// 唯一索引,决不重复
UserName varchar (20) , -- // 主键
constraint Table_Name_PK primary key (Name)
)

.NET 中若使用DataSet
在设置其主键
System.Data.DataColumn [] objDC=new System.Data.DataColumn [1];
System .Data .DataTable objDT=(System .Data .DataTable)this .DataSet_Name.Tables ["Table_Name"];
objDC [0]=objDT.Columns ["ColumnName"];
objDT.PrimaryKey=objDC;
数据库回写时:
CommandText = "insert into Table_Name(UserName) values(this.DataSet_Name.Tables["Table_Name"].Rows["UserName"]["ColumnName"])" 就可以了。

xunx 2003-08-22
  • 打赏
  • 举报
回复
up
einsteincao 2003-08-22
  • 打赏
  • 举报
回复
数据库中设置Unique索引! 操作可以查SQLserver的帮助。 连接数据库时可以RaiseError,在.aspx中catch this error 就OK了
  • 打赏
  • 举报
回复
在Name上设置一个唯一索引呀!!!
chenhigh 2003-08-21
  • 打赏
  • 举报
回复
1.为name字段添加唯一性约束
具体如下:
(1)在user表上右键->所有任务->管理索引->新建
(2)在对话框填写索引的名称,选择name列,把索引选项的唯一值复选框选中
(3)点击“确定” , 然后点击“关闭”
2.
private void AddBtn_Click(object sender, System.EventArgs e)
{
try
{
user.Add();//Add()方法假设为添加用户的方法
}
catch ( SqlException e )
{
if (e.Number == 2627) //2627为违反唯一约束产生的错误代号
{
//做相应处理
}
}
}


neodotnet 2003-08-21
  • 打赏
  • 举报
回复
bool isUserExist = false;
string selectStr = "SELECT * FROM user WHERE name= @name";

SqlCommand cmd = new SqlCommand(selectStr, conn);
cmd.Parameters.Add("@name", SqlDbType.VarChar).Value = Name.Text;

conn.Open();
SqlDataReader dr = cmd.ExecuteDataReader();
if (dr.Reader())
isUserExist = true;
dr.Close();
conn.Close();

if (!isUserExist)
//添加用户代码
ronanlin 2003-08-21
  • 打赏
  • 举报
回复
private void AddBtn_Click(object sender, System.EventArgs e)
{
cn="数据库连接";
strsql="select * from user where name='" + Name.Text + "'";
OleDbConnection cn=new OleDbConnection(cn);
OleDbCommand myCommand=new OleDbCommand(strsql,cn);
OleDbDataReader dr=myCommand.ExecuteReader(CommandBehavior.CloseConnection);
if(dr.Read())
{
message.Text="已经存在";
}
else
{
执行添加
}
}
zag 2003-08-21
  • 打赏
  • 举报
回复
在Name上设置一个唯一索引就OK了。
panyee 2003-08-21
  • 打赏
  • 举报
回复
SqlConnection conn = new SqlConnection("server=pany;database=pany;uid=sa;pwd=123");

SqlCommand cmd = new SqlCommand("select count(*) from user where name='" + Name.Text + "'", conn);
conn.Open();
int iCount = Convert.ToInt32(cmd.ExecuteScalar());
conn.Close();
if(iCount == 0)
{
//不存在
}
else
{
//存在
cmd = .....//写数据库
}

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧