通过SQL检查表中是否存在用户

时间:2017-01-10 20:08:50

标签: sql asp.net .net validation

我试图在我的"创建用户" ASP.NET中的表单。

我试图找出如何从我的类文件中获取SQL验证函数的if语句,以查看是否已使用用户名和电子邮件。

这是我试图做的。

班级档案:

public DataTable ValidateUSER(string Username)
{
    string SQL = "SELECT fldUsername FROM tblBruger WHERE fldUsername LIKE 
    @username";

    SqlCommand CMD = new SqlCommand(SQL);

    CMD.Parameters.AddWithValue("@username", Username);

    return DA.GetData(CMD);
}

我的代码隐藏:

LoginClass objLogin = new LoginClass();

 protected void ButtonCheck_Click(object sender, EventArgs e)
{
    string txtUser = txtUsername.Text;


    if (obj.ValidateUSER(txtUser) == txtUser)
    {
        litResult.Text = "Username already taken";
    }

2 个答案:

答案 0 :(得分:0)

我不确定DA是什么,但我猜测它是某种数据访问框架,它将执行提供的命令并返回数据表。如果是这种情况,您只需进行一些小修改。

public string ValidateUser(string userName)
{
    string sql = "SELECT fldUsername FROM tblBruger WHERE fldUsername LIKE @username";
    SqlCommand cmd= new SqlCommand(sql);
    cmd.Parameters.AddWithValue("@username", userName);
    DataTable table = DA.GetData(cmd);
    if (table.Rows.Count != 0) 
    {
        return table.Rows[0].Item[0] as string;
    }
    return null;
}

这里也是一个调整。注意我使检查不区分大小写,这似乎对用户名是合理的:

var s = obj.ValidateUser(txtUserName.Text);
if (s != null && s.ToLower() == txtUserName.Text.ToLower())
{
    litResult.Text = "Username already taken";
}

另请注意,我更改了某些标识符的大小写,以便它们与Microsoft发布的C# coding conventions一致。

答案 1 :(得分:0)

您需要使用SqlDataReader

string SQL = "SELECT fldUsername FROM tblBruger WHERE fldUsername LIKE 
    @username";

SqlCommand CMD = new SqlCommand(SQL); 

SqlDataReader rdr = CMD.ExecuteReader();

while (rdr.Read())
{
//do something with result set
}
相关问题