c#的句法错误

来源:百度知道 编辑:UC知道 时间:2024/06/04 23:16:51
string rightPwd = Convert.ToString(cmd.ExecuteScalar());
这句错在哪里了
谢谢大家的回复,但报的错是这样的
异常详细信息: System.Data.SqlClient.SqlException: 31行'=' 附近有语法错误。
源错误:
行 29: string sqlstring1 = "select Pwd from " + tables + "where ID= " + ID;
行 30: SqlCommand cmd = new SqlCommand(sqlstring1,conn);
行 31: string rightPwd = Convert.ToString(cmd.ExecuteScalar());
行 32: //输入旧密码正确则执行修改命令
行 33: if (rightPwd==OldPwd)

string rightPwd = Convert.ToString(cmd.ExecuteScalar());
这句不是一直会出错,而是在里面的值为空或是无效的数据的时候才会出错

cmd.ExecuteScalar()这个方法是返回第一行第一列的数据,

object s = cmd.ExecuteScalar()这个值,很可能是为空的
string rightPwd = null
if ( s != null) rightPwd = Convert.ToString(s);

1楼那样做是会出问题的

cmd.ExecuteScalar() 返回空值会报错 可以做以下处理
if (cmd.ExecuteScalar() != null)
{
string rightPwd = Convert.ToString(cmd.ExecuteScalar());

}
else
{
string rightPwd=null;
}

cmd.ExecuteScalar() 返回空值会报错
但这句话这样写并没有错...
我以前也写这句话也报错了!但是原因不是在这而是在数据库中
数据库中的查询语句是这样
select * from table//这样就报错
select count(*) from table//这样才对
你试试看吧...
这句话是返回影响记录的条数
--WADE工作室

没问题
ExecuteScalar()是返回第一行第一列的值
你要保证得到的值是唯一的记录

string rightPwd = cmd.ExecuteScalar().ToString();

试试