我正在尝试使用SqlDataReader
检查条目是否存在。如果存在则返回ID,否则返回false。当我尝试编译时,出现错误“无法将方法组“Read”转换为非委托类型“bool”。我一直在遵循在 VB 中找到的示例,但似乎翻译可能不正确。
private string checkProfileExists()
{
string strReturn = "False";
string strSql = ("SELECT ID FROM tblInformation WHERE txtUsername=@UserName " +
"AND TrackingID=@TrackingID");
string strConn = ConfigurationManager.ConnectionStrings["WEM_PassWord_Reset"].
ConnectionString;
SqlConnection objConn = new SqlConnection(strConn);
SqlCommand objCmd = new SqlCommand(strSql, objConn);
objCmd.Parameters.AddWithValue("@Username", txtUsername.Text);
objCmd.Parameters.AddWithValue("@TrackingID", txtTrackingID.Text);
try
{
objConn.Open();
System.Data.SqlClient.SqlDataReader rdr = objCmd.ExecuteReader();
if (rdr.Read)
{
strReturn = rdr("ID").ToString;
}
else
{
strReturn = "False";
}
}
catch (Exception ex)
{
lblErrorMessage.Text = ex.ToString();
}
finally
{
objConn.Close();
objCmd = null;
}
return strReturn;
}
当您在 C# 错误中看到短语“方法组”时,需要考虑的一种解释是您省略了括号()
来自不带参数的方法。在这种情况下,方法是Read
在你的DataReader
.
当编译器看到Read
(没有括号),它认为您正在谈论方法本身,就像试图将其分配给委托一样。而你真正想做的是invoke方法 - 为此,在 C# 中,您必须给出参数列表(在本例中为空),因此:Read()
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)