C#&数据库 确定表中数据有几行从而推测出新加入的数据的主键或序号

本文介绍了如何在C#中利用数据库连接判断Workers表中是否存在相同用户名,若不存在则插入新员工数据,并通过计数确定新员工的唯一编号。通过ExecuteScalar方法查询并处理数据,确保数据的唯一性和正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前提:一个管理系统,数据库中一个表叫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;
        }

发现发图太麻烦就不发了- -

 

 

解决了一个问题真是神清气爽- -

如有不对欢迎指正啊- -

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值