用户通过电子邮件登录facebook或使用sql数据读取器在C#中使用用户ID和密码?

时间:2014-03-02 07:57:38

标签: c# sql-server logging sqldatareader

我想在C#中构建登录系统并使用sql Data reader,如Facebook,用户可以使用Email或UserID和Password登录其帐户。我写了这段代码但是没有用到我的问题或者你能推荐。

 sql = "select * from Users_tbl WHERE (([Email] = @EmailParam) OR ([UserID] = @UserIDParam) AND ([Password] = @PasswordParam))";

SqlCommand cmd = new SqlCommand(sql, con);

SqlParameter uemail = new SqlParameter("@EmailParam", SqlDbType.NVarChar, 80);
                    uemail.Value = txtEmailUserID.Text.Trim().ToString();
                    cmd.Parameters.Add(uemail);

SqlParameter userid = new SqlParameter("@UserIDParam", SqlDbType.NVarChar, 50);
                    userid.Value = txtEmailUserID.Text.Trim().ToString();
                    cmd.Parameters.Add(userid);

SqlParameter upass = new SqlParameter("@PasswordParam", SqlDbType.NVarChar, 80);
                    upass.Value = txtPassword.Text.Trim().ToString();
                    cmd.Parameters.Add(upass);

 SqlDataReader dr = cmd.ExecuteReader();

while(dr.read())
{
// session variables
}

2 个答案:

答案 0 :(得分:2)

这似乎太简单了。尝试实验。选择数据库。列出表格。使用SQL管理工作室或LINQ-to-EF创建具有相同输入参数的相同类型的查询。在某些时候,问题将浮出水面。祝你好运。

我还查看了运算符优先级,这似乎不是问题所在:http://technet.microsoft.com/en-us/library/ms190276.aspx

答案 1 :(得分:1)

尝试添加这样的额外支架

var sql = "select * from Users_tbl WHERE ((([Email] = @EmailParam) OR ([UserID] = @UserIDParam)]) AND ([Password] = @PasswordParam))";