asp.net关于登陆判断的

为什么密码算是正确的,但是还是执行密码错误的时候的输出
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;

public partial class login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
protected void Button1_Click(object sender, EventArgs e)
{
    string name = this.TextBox1.Text;
    string password = Request.Form["password"];
    string conn = "Data Source=WIN-T440SQTMDUO;Initial Catalog=moli;User ID=sa;Password=123456789;";//数据库的连接字符串
    SqlConnection str = new SqlConnection(conn);//建立连接数据库的实例
     str.Open();//打开数据库
     //判断数据库是否打开
     if (str.State.Equals(ConnectionState.Open))
     {
         Response.Write("数据库连接已经打开<br>");
     }
     else
     {
         str.Open();
     }
     string strsql = "select * from login where userid='" + name + "'";
      SqlCommand dl = new SqlCommand(strsql, str);
      SqlDataReader read = dl.ExecuteReader();//创建数据阅读器

              read.Read();//读取数据

              string buttom = read["password"].ToString();//强制类型装换
              Response.Write("密码是"+buttom+"<br>");
               bool b1=buttom.Equals(password);//比较两个string类型的数据buttom和password的值
              if (b1==true)
              {
                  Response.Write("登陆成功");
                  read.Close();
                  str.Close();    
              }
             if(b1==false)
             {
                 Response.Write("密码错误");
                 read.Close();
                 str.Close(); 
             }




}

}