公共帐户getAccount(字符串userID) { 帐户accountFound = null;
string Name, Password, Email, PhoneNum, Address;
string queryStr = "SELECT * FROM Account WHERE userID = @userID ";
SqlConnection conn = new SqlConnection(_connStr);
SqlCommand cmd = new SqlCommand(queryStr, conn);
cmd.Parameters.AddWithValue("@userID", userID);
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
userID = dr["UserID"].ToString();
Name = dr["Name"].ToString();
Password = dr["Password"].ToString();
Email = dr["Email"].ToString();
PhoneNum = dr["PhoneNum"].ToString();
Address = dr["Address"].ToString();
accountFound = new Account(userID, Name, Password, Email, PhoneNum, Address);
}
conn.Close();
dr.Close();
dr.Dispose();
return accountFound;
}
你好!我的程序出错了。以上是我的代码!
错误信息 :
用户代码未处理SqlException
参数化查询'(@ userID nvarchar(4000))SELECT * FROM Account WHERE userID = @us'需要参数'@ userID',这是未提供的。
需要你的帮助!谢谢!
答案 0 :(得分:0)
我相信如果您检查UserID
的值,就会发现它是Null
。
如果您尝试找到NULL
UserId
的用户,那么您将执行:
string queryStr = "SELECT * FROM Account WHERE userID IS NULL";
^^^^^^^
[不相关,但我还建议使用using
语句来包装你的连接和命令。]
答案 1 :(得分:0)
public Account getAccount(string userID) { Account accountFound = null;
if (String.IsNullOrEmpty(userID))
return accountFound;
//leave everything else
然后,您必须处理在调用此函数后发生的任何事情返回的null值。