否则......如果陈述不符合我的表格......?我可以使用try-catch吗?

时间:2016-04-12 23:50:30

标签: c# visual-studio visual-studio-2012

我正在创建一个包含用户名和密码的登录窗口。我有一个数据表,其中包含用户信息,当用户尝试登录时(在代码末尾),我正在使用else..if语句。它假设检查用户名和密码并验证它是否与表中的内容相匹配。如果它没有,则假设出现消息框。此外,朝着最后的其他... if语句用户JANITOR根本不登录!可能导致此问题的原因是什么?他们都登录正常,除了最后一个用户JANITOR和我的消息框没有出现!

mencoder -idx 1E03004920160411093036001.avi -ovc copy -oac copy -o 1E03004920160411093036001-a.avi

PICTURE OF MY TABLE DATA

1 个答案:

答案 0 :(得分:0)

逻辑流程没有任何问题。我的猜测是你的输入中有空格。试试这个:

string userName = UserText.Text.Trim();
string passwrd = PassText.Text.Trim();

这将从输入中删除空格和制表符。现在用userName替换你使用UserText.Text的所有地方,并用passwrd替换PassText.Text。

您可能还想尝试为此TYPE字段创建一个变量,如下所示:

string userType = dt1.Rows[0][0].ToString().Trim();

例如:

private void xButton1_Click(object sender, EventArgs e)
{
    string userName = UserText.Text.Trim();
    string passwrd = PassText.Text.Trim();

    SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\Mohamed\Documents\UserData.mdf;Integrated Security=True;Connect Timeout=30");
    SqlDataAdapter sda = new SqlDataAdapter("Select Count (*) From dbo.[LOGIN] where username='" + userName + "' and Password ='" + passwrd  + "'", con);

    DataTable dt = new DataTable();
    sda.Fill(dt);

我希望有所帮助。

我认为这是一个不能在现实世界中使用的学习项目。如果没有,请重新考虑你在做什么。你真的不应该推出自己的安全系统。您的代码中存在一个经典的SQL注入攻击漏洞,可能会危及整个系统。

如果这是一个学校项目继续你正在做的事情,但你可能想问教授SQL注入攻击是什么。

祝你好运!