前提:一个管理系统,数据库中一个表叫Workers,有四列分别是Wid(员工编号)、Wname(员工姓名)、Wpwd(员工账号密码)、Wquanxian(看拼音。。。),现在要往这个表中添加新的数据(增加新员工了!),论如何正确插入没有重复的用户并确定表的主码
public int UserMan1(string Wname,string Wpwd)//封装了一个数据库类,这个是其中的一个函数,需要把用户输入的用户名和密码作为参数传过来
{
int num=0;//返回值,确认到底有没有成功添加用户
conn = new SqlConnection(connString);
string sql;
sql=string.Format("select count(*) from Workers where Wname = '{0}'", Wname);//查询有没有相同用户名的语句
try
{
conn.Open();
comm = new SqlCommand(sql, conn);//查找有没有相同的用户名
int numm = (int)comm.ExecuteScalar();//没有匹配的行返回0,有返回1
if(numm==0)
{
SqlCommand cmd = new SqlCommand("select count(*) from Workers", conn);//搜索看表中有多少行,确定下一个人的编号
int intnum = Convert.ToInt32(cmd.ExecuteScalar()) + 1;//转换成整型加一行
string number ="W"+ Convert.ToString(intnum);//转换成字符串类型准备写入数据库
string zero = "0";//权值为0的是普通用户,貌似可以在下面一行直接换成“0”
string insql= string.Format("insert into Workers (Wid, Wname, Wpwd, Wquanxian) VALUES ('{0}', '{1}', '{2}','{3}')",number,Wname,Wpwd,zero);
SqlCommand comm1 = new SqlCommand(insql, conn);
num=comm1.ExecuteNonQuery();//更新数据库
}
else
{
MessageBox.Show("用户名设置错误", "已有该用户存在", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "操作数据库出错!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
finally
{
conn.Close();
}
return num;
}
发现发图太麻烦就不发了- -
解决了一个问题真是神清气爽- -
如有不对欢迎指正啊- -