In your code you have this line:
if (cn.State == ConnectionState.Closed)
but I can't see a section where you continue if the cn.State is open. Depending on whether you handled any other opening/closing of that connection you may have a problem (the two functions here look OK but you may have other code that leaves the connection open elsewhere).
Also, you are selecting all from the database where user name and password matches but then, when checking if the data reader has rows you are running the same check again:
if ((rdr.GetString(1) == this.tbx_user.Text) && (rdr.GetString(2) == this.tbx_pwd.Text))
This seems unnecessary as the reader can only contain rows if the user name/password have already been matched.