当前位置:编程学习 > C#/ASP.NET >>

asp.net连接Mysql数据代码。为什么这样写总是返回(用户名可用)呢?



代码如果。 --------------------编程问答-------------------- sql语句改成select count(*) from ......
if语句改成:
if(Convert.ToInt32(com.ExecuteScalar())>0)
//用户名存在
else
//用户名不存在 --------------------编程问答-------------------- name不是字符串类型吗?两边不需要单引号?
另外,你的ExecuteScalar最好先放在一个变量里,然后用变量来判断比较,你现在这种比较相当于查询了数据库两次,效率很低很多
object obj=com.ExecuteScalar();
if(obj!=null && obj!=System.DBNull.Value)
{
}
else
{
} --------------------编程问答-------------------- 建议还是用select count(*)吧 --------------------编程问答-------------------- LZ为什么要把上一个语句给注释掉呢,那个是正确的

还有查询出的结果是返回一个object类型

如果查到了记录就返回该Id的值,如果查不到就返回null

所以个人认为只要判断cmd.executescalar()是否等于null就行了
--------------------编程问答-------------------- name不是字符串类型吗?不用加''? --------------------编程问答--------------------
引用 2 楼 gxingmin 的回复:
name不是字符串类型吗?两边不需要单引号?
另外,你的ExecuteScalar最好先放在一个变量里,然后用变量来判断比较,你现在这种比较相当于查询了数据库两次,效率很低很多
object obj=com.ExecuteScalar();
if(obj!=null && obj!=System.DBNull.Value)
{
}
else
……


两边加单引号查询时就报错了,我是用mssql的,mysql刚用不久,mssql就要用单引号。 --------------------编程问答--------------------
引用 5 楼 Change_L 的回复:
name不是字符串类型吗?不用加''?

两边加单引号查询时就报错了,我是用mssql的,mysql刚用不久,mssql就要用单引号。 --------------------编程问答-------------------- string sql=string.Format("select count(1) from [user] where [name]='{0}'",userName); --------------------编程问答--------------------
引用 8 楼 hjywyj 的回复:
string sql=string.Format("select count(1) from [user] where [name]='{0}'",userName);


为什么name='{0}'不能加引用?只能这样写name={0}
一加单引号就报错了。
--------------------编程问答-------------------- 建议用ExecuteXXXNonQuery方法查询,返回int判断
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,