用SQL取数
程序有问题呀,你的查询返回了login表中的所有数据,在判断用户名是否存在表中时,只读取了第一条,只要第一条记录的用户名不是你输入的那个用户名,a==username就不会成立。要用一个循环依次读取所有记录来判断才行。
建议在查询时以用户名为条件查询,这样只在查询后检查dr是否返回数据就可以判断用户名存不存在了。
string
username
=
textbox1.text.tostring();
string
password
=
textbox2.text.tostring();
string
qq
=
"select
*
from
login
where
username='"
+
username
+
"'";
sqlconnection
conn
=
new
sqlconnection(connstring);
conn.open();
sqlcommand
cmd
=
new
sqlcommand(qq,
conn);
sqldatareader
dr
=
cmd.executereader();
if
(dr.hasrows)
//判断dr是否返回了一行或多行数据
{
messagebox.show("用户名已存在,请重新输入!");
}
else
{
。。。。。。
}
Ⅱ sql,字符串中取数字
1、创建测试表,
create table test_str(id int, v_str varchar2(20));
Ⅲ SQL语句提取字符串中数字
比如你的表叫作TALBE1,字段是str1,类型为nvarchar,那么找出有湘政发的最大号加1这样写
select
max(convert(int,substring(str1,patindex(N'%[1234567890]%',str1),len(str1)-patindex(N'%[1234567890]%',str1)+1-patindex(N'%[1234567890]%',reverse(str1))+1)))+1
from
table1
where
str1
like
N'%湘政发%'
测试通过,耗时很长,请认真试试。
这是sql
server
的写法。
如果是ORACAL或其它的SQL语言您可以到这里参考一下。你会发现,用SQL
SERVER我的方法要比他的好
Ⅳ sql 取数问题
SELECT B.TYPE, MONTH(A.开始日期), COUNT(A.ID) AS 开始个数,
COUNT( CASE WHEN C.结束日期 IS NOT NULL AND C.结束日期 <> '' THEN A.ID ELSE NULL END) AS 结束个数,
CASE WHEN C.结束日期 IS NOT NULL AND C.结束日期 <> '' THEN DAYS(C.结束日期) - DAYS(A.开始日期) ELSE NULL END AS 处理时间
FROM A
LEFT JOIN B ON A.ID = B.ID
LEFT JOIN C ON A.ID = C.ID
WHERE (A.开始时间 >= 日期范围(开始时间))
GROUP BY B.TYPE,
CASE WHEN C.结束日期 IS NOT NULL AND C.结束日期 <> '' THEN DAYS(C.结束日期) - DAYS(A.开始日期) ELSE NULL END
话说 个数是个统计量 处理时间则针对每个ID都不一样 这两个放一起有点囧吧...
若数据库中日期为字符串 则将日期函数替换为相应的字符串函数
以上回答你满意么?
Ⅳ 用sql语句怎么从数据库中提取结果
1、我们首先在创建一个WEB页面,用EF导入数据库中的一个实体模型,然后创建一个按钮,点击按钮以后用EF向数据库中执行insert操作。
Ⅵ 怎样在SQL中把一列中的数字提取出来
一条记录时采用以下方法:使用PATINDEX函数找出字符串中第一次出现数字的位置
declare @aa varchar(80),----INFO列
@bb varchar(80)
set @aa ='你好12按时地方'
set @bb=''
while PATINDEX('%[0-9]%',@aa)<>0 /*每次循环找出一个数字*/
begin
set @bb = @bb+substring(@aa,PATINDEX('%[0-9]%',@aa),1)/*把找出来的数字进行相加*/
set @aa=substring(@aa,1,PATINDEX('%[0-9]%',@aa)-1)+
substring(@aa,PATINDEX('%[0-9]%',@aa)+1,len(@aa)-PATINDEX('%[0- 9]%',@aa)) /*把找出来的数字从原先的字符串中踢除出来,然后再循环找出更多的数字*/
end
select @bb/*要求得到的结果*/
要对一张表中的所有记录进行查询时,可以把上面的语句改写成一个存储过程,采用游标进行处理,并把找出来的记录插入到相应的虚拟表里面,即可得到你想要的结果
Ⅶ sql语句在一个字段中提取数字
select regexp_substr('水库新村332号','[0-9]+' ) from al;--用正则表达式取出数字
select regexp_substr('水库新村332号','[[:digit:]]+') from al;
Ⅷ SQL怎样取出字符串中的数字
select
casewhenb.FModellike'%=%'thenSUBSTRING(b.FModel,CHARINDEX('=',b.FModel)+1,LEN(b.FModel)-CHARINDEX('=',b.FModel))
whenb.FModellike'%*%'thenSUBSTRING(b.FModel,0,LEN(b.FModel)-CHARINDEX('*',b.FModel))
endas长度
Ⅸ SQL取数问题
SELECT a.日期,b.客户 as 新客户 from
(select TRUNC(SYSDATE, 'MM') + ROWNUM - 1 as 日期 FROM DUAL
CONNECT BY ROWNUM <= TO_NUMBER(TO_CHAR(LAST_DAY(SYSDATE), 'dd'))) a
left join 销售表 b on a.日期 <= b.日期+60
order by a.日期
Ⅹ SQL 如何取出数据库中一列的所有值.....
1、首先在mysql创建表和添加数据。进入mysql,创建一个数据库,并使用该数据库。