标题:[讨论]SQL取值的问题
只看楼主
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
结帖率:33.33%
 问题点数:0 回复次数:10 
[讨论]SQL取值的问题
各位老大:小弟在学到连接数据库后取值时,百思不得其解,望大家在百忙之中关注一下:

1、除了通过count(*)外,还有其他判断有没有值的方法吗?
2、????取值语句(把xm字段的值取出来)怎么写?

string str = "select count(*) from student where xh='00004'"; //找到学号=00004的纪录,student有字段 xm,xh,fs等
SqlCommand cmd = new SqlCommand(str, conn);
int count = Convert.ToInt32(cmd.ExecuteScalar());//
if (count > 0)//判断有没有值 {
MessageBox.Show("在<'+????+'>里有记录","提示");//????是把xm字段的值取出来,如果满足条件的纪录不止一条也显示出来
}
else
{ MessageBox.Show("没有找到!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); }
}
搜索更多相关主题的帖子: SQL 讨论 
2006-08-19 16:14
从小到大
Rank: 1
等 级:新手上路
威 望:2
帖 子:200
专家分:0
注 册:2006-6-24
得分:0 
dataset.Tables[0].Rows[0]["列名"]

2006-08-19 16:21
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
得分:0 
我看了一些例子,它是通过绑定到控件上来实现,这样不大好,还得建立控件,我只是想把值取出来。

string str = "select * from student where xh='00004'"; //student有字段 xm,xh,fs等
SqlCommand cmd = new SqlCommand(str, conn);
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter(str,conn);
da.Fill(ds, "student");
this.textBH.DataBindings.Add("Text",ds,"student.xm");

2006-08-19 16:24
从小到大
Rank: 1
等 级:新手上路
威 望:2
帖 子:200
专家分:0
注 册:2006-6-24
得分:0 
我新学的 只能帮到你这些了

2006-08-19 16:25
xxxxx52
Rank: 4
等 级:贵宾
威 望:13
帖 子:689
专家分:0
注 册:2006-4-30
得分:0 
你是想把值取出来 还是想判断是否为空?

好的资料下载网站http:///in.asp?id=xuelion2006 嘿嘿帮点一下拉~
2006-08-19 16:30
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
得分:0 
首先,先判断是否为空,


如果不空,则取值

这个地方有些别扭:好像重复了

判断为空,我只会 select count(*) from .....
count >0

如果不空count >1
还要重写语句
select * from .....
再取值

2006-08-19 16:43
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
得分:0 
从小到大,客气了,跟你学了一招,尽管我没有调试成功,谢谢!

2006-08-19 16:45
roy_guo
Rank: 1
等 级:新手上路
帖 子:107
专家分:0
注 册:2006-4-27
得分:0 
你那个只是判断有没有符合条件的记录,如果要获得符合条件的记录,参照3楼说法

彪悍的人生不需要解释~~~
2006-08-19 17:42
月夜枫华
Rank: 4
等 级:贵宾
威 望:12
帖 子:437
专家分:42
注 册:2006-1-2
得分:0 
要尽量避免类似Count(*)这样的使用,只是要判断一下是否有值而已,这样判断在数据量大的时候会很消耗时间的(亲身体验).
可以Select 某一个字段,然后使用SqlDataReader进行读取,判断sdr.Read()为true时,为含有行.
但正确方法应该使用存在关键字Exist进行判断是速度最快的方法!

2006-08-19 18:36
mylover624
Rank: 1
来 自:乖乖的心中
等 级:新手上路
帖 子:868
专家分:0
注 册:2006-7-6
得分:0 
同意楼上说的.
如果数据库里的字段很多,再用Count(*),运行会很慢的.

一个天才顶不上十个笨蛋!
书山有路勤为径,学海无涯友相伴。
我的E-mail:mylover624@.cn
2006-08-20 12:42



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-84984-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.090573 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved