用 C# 如何判断数据库中是否存在一个值

我做的公司管理系统,在向数据库中添加职工信息时,职工号不能相同,如何判断数据库中是否已经存在这个职工号,有时返回真,没返回假!!急急急急急急急!!!!!!... 我做的公司管理系统,在向数据库中添加职工信息时,职工号不能相同,如何判断数据库中是否已经存在这个职工号,有时返回真,没返回假!!急急急急急急急!!!!!! 展开
 我来答
百度网友79faf363
2019-11-21 · TA获得超过1.1万个赞
知道小有建树答主
回答量:1212
采纳率:75%
帮助的人:52.5万
展开全部

选定一个列,比如职工号列

ele_no = 'xxxxxxxx';

//查询此职工号是否存在

SqlCommand mycmd = new SqlCommand("select 职工号 from table where 职工号='"+ele_no+"'", mycon);

SqlDataReader mysdr = mycmd.ExecuteReader();

if (mysdr.HasRows){ 

//已经有记录使用此编号

}else{ 

//此编号未被使用

}

mysdr.Close();

mycon.Close();

扩展资料:

c#操作数据库:

1、下载mysql.Data.dll,在解决方案->引用中引入,并在文件头部引入。

using MySql.Data.MySqlClient;

2、创建MySqlConnection对象(链接库)。

string connstr = "data source=localhost;database=cs_test;user id=root;password=123456;pooling=false;charset=utf8";

MySqlConnection conn = new MySqlConnection(connstr);

pooling代表是否使用连接池

3、创建对应操作的MySqlCommand对象(测试数据库表名characters,属性列:id,names,passwords)。

string sql = "select * from characters";

MySqlCommand cmd = new MySqlCommand(sql,conn);

4、针对不同操作,MySqlCommand对象有三个常用方法。

查找多行 : ExecuteReader()方法

返回一个MysqlDataReader对象,包含多个行,用其Read方法逐行读取。

对于每行元素,可以用getXXX()方法读取属性值,XXX为该属性类型,参数为属性名或者该属性为这张表的第几列。

可以用IsDBNull()方法判断是否为空,参数只能是该属性为这张表的第几列(即只能是数字)

查找单个: ExecuteScalar()

返回值为查找到的元祖第一个属性,以object类型返回。

增、删、改: ExecuteNonQuery()

返回值为int,不成功是0,成功是1。

阳光一叶
2010-06-07
知道答主
回答量:23
采纳率:0%
帮助的人:0
展开全部
插入前,先用要添加的职工号查询数据库中是否有职工编号,用ExecuteScalar 接收返回值,通过判断返回值是否为1来判断是否有此职工号(返回值为1时,有此职工号,反之没有)。没有此职工号,则插入职工信息。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友57a0c766b
2010-06-07 · TA获得超过822个赞
知道小有建树答主
回答量:395
采纳率:100%
帮助的人:237万
展开全部
string str="select count(*) from 员工表 where 员工号='"+输入的员工号.text+"'";
然后如果执行结果为0则
insert into 员工表 values(...);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
东北白骨精
推荐于2017-11-28 · TA获得超过884个赞
知道小有建树答主
回答量:448
采纳率:0%
帮助的人:0
展开全部
选定一个列,比如用户编号列

//欲插入的用户编号
string ll_userID="xxxxxxxx";

//查询此编号是否存在
SqlCommand mycmd = new SqlCommand("select 用户编号 from table where 用户编号='"+ll_userID+"'", mycon);

SqlDataReader mysdr = mycmd.ExecuteReader();

if (mysdr.HasRows)
{
//已经有记录使用此编号
}
else
{
//此编号未被使用
}

mysdr.Close();
mycon.Close();

----------如果用户编号列是整型的话,也可以写成这样子

int ll_userID;

//取出当前记录中最大编号值
SqlCommand mycmd = new SqlCommand("select max(用户编号) from table", mycon);

SqlDataReader mysdr = mycmd.ExecuteReader();

//这里还检测是否有记录的目的是为了判断表是否为空
if (mysdr.HasRows)
{
//表不为空,在查询得到的最大编号基础上+1,然后插入新纪录
}
else
{
//表为空,则插入一个默认的最小编号记录
}

mysdr.Close();
mycon.Close();
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
飘湘叶雨
2010-06-07
知道答主
回答量:87
采纳率:0%
帮助的人:0
展开全部
先将所有的职工号查询出来,
然后循环比较一下..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式