Jas*_*son 7 c# sql sqldatareader
我试图用来SqlDataReader检查条目是否存在.如果它存在,它将返回ID,否则它将返回false.当我尝试编译时,我收到错误"无法将方法组'读'转换为非委托类型'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;
}
Run Code Online (Sandbox Code Playgroud)
Aak*_*shM 24
当您在C#错误中看到短语"方法组"时,需要考虑的一个解释是您()从不带参数的方法中省略了括号.在这种情况下,方法是Read你的DataReader.
当编译器看到Read(没有括号)时,它认为你正在讨论方法本身,就好像试图将它分配给委托一样.你实际想要做的是调用方法 - 为了做到这一点,在C#中,你必须给出参数列表(在这种情况下是空的),因此:Read().