C# 当我使用带有where子句的select语句时,SqlDataReader不返回任何行

C# 当我使用带有where子句的select语句时,SqlDataReader不返回任何行,c#,sql-server,visual-studio,C#,Sql Server,Visual Studio,问题是您将参数名括在引号中。删除以下内容: using(var conn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=" + path + @"\" + dbName + ";Integrated Security=True;Connect Timeout=30")) { conn.Open(); var cmd = new SqlCommand("SELECT * FROM

问题是您将参数名括在引号中。删除以下内容:

using(var conn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=" + path + @"\" + dbName + ";Integrated Security=True;Connect Timeout=30"))
{
    conn.Open();
    var cmd = new SqlCommand("SELECT * FROM [Staff_Enroll] WHERE Fingerprint = '@fingerprint' ", conn);
    cmd.Parameters.AddWithValue("fingerprint", val);
    var reader = cmd.ExecuteReader();

    while (reader.Read())
    {
        Staff_finger = Convert.ToString(reader["Department"]);
    }
}   

另外,我建议您使用显式类型的参数。这将有助于提高性能并避免意外情况。

问题在于您已将参数名称括在引号中。删除以下内容:

using(var conn = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=" + path + @"\" + dbName + ";Integrated Security=True;Connect Timeout=30"))
{
    conn.Open();
    var cmd = new SqlCommand("SELECT * FROM [Staff_Enroll] WHERE Fingerprint = '@fingerprint' ", conn);
    cmd.Parameters.AddWithValue("fingerprint", val);
    var reader = cmd.ExecuteReader();

    while (reader.Read())
    {
        Staff_finger = Convert.ToString(reader["Department"]);
    }
}   

另外,我建议您使用显式类型的参数。这将有助于提高性能并避免意外情况。

请描述您的问题,以及您尝试的内容,而不仅仅是复制粘贴代码。您有以下行
cmd.Parameters.AddWithValue(“指纹”,val)
但是您添加了参数
fingerprint
vs
@fingerprint
了解SQL中的参数以及如何在C#中构造参数化查询。请发布错误,因为我很确定它正在返回one@MethodManSqlParameter会自动添加@ifmissing@MethodMan请描述您的问题,以及您所尝试的,不仅仅是复制粘贴代码。您有以下行
cmd.Parameters.AddWithValue(“指纹”,val)
但是您添加了参数
fingerprint
vs
@fingerprint
了解SQL中的参数以及如何在C#中构造参数化查询。请发布错误,因为我很确定它正在返回one@MethodManSqlParameter会自动添加@ifmissing@MethodMan