Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用accdb检查Access中是否存在用户名失败_C#_Asp.net_Sql_Visual Web Developer - Fatal编程技术网

C# 使用accdb检查Access中是否存在用户名失败

C# 使用accdb检查Access中是否存在用户名失败,c#,asp.net,sql,visual-web-developer,C#,Asp.net,Sql,Visual Web Developer,当我输入数据库中存在的值时,else总是发生,使用 String user = Request.Form["username"]; String Path = Server.MapPath("App_Data/Users.accdb"); String connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Path; OleDbConnection conn = new OleDbConnecti

当我输入数据库中存在的值时,else总是发生,使用

    String user = Request.Form["username"];
    String Path = Server.MapPath("App_Data/Users.accdb");
    String connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Path;
    OleDbConnection conn = new OleDbConnection(connStr);
    String sql = "SELECT * FROM Users WHERE UserName='" + user + "'";
    conn.Open();
    OleDbCommand cmd = new OleDbCommand(sql, conn);
    OleDbDataReader myDataReader = cmd.ExecuteReader();
    if (myDataReader.Read())
    {
        Response.Write("user exists");
        conn.Close();
    }
    else
        Response.Write("user does not exist");
    conn.Close();
我在我的登录页面中使用它,它可以查看用户是否存在,我只是从中删除了密码部分

顺便说一下,这是我在这页上使用的表格

if (myDataReader.Read())

只是好奇而已

为什么不更改sql以返回一个值呢

<form method="get" action="profile.aspx">
    <input type="text" name = "username" /><input type = "submit" value = "Search" />
</form>

仅供参考,我将使用User作为参数,而不是像那样构造字符串。

远程调试,当您执行查询
SELECT*FROM Users
时,myDataReader包含哪些内容?变量
User
的值是多少?尝试替换响应。使用
响应写入。写入(“用户:“+user+”:不存在”)我的一些表单使用了“method=get”,这是失败的原因,现在没事了,很抱歉误导您:SUnlike论坛网站,我们不使用“谢谢”或“感谢任何帮助”或签名。请参阅“-1:您知道SQL注入攻击,但您通过演示如何遭受此类攻击来回答。
String sql = string.Format(@" DECLARE @IsExists BIT
                              SET @IsExists = 0x0
                              SELECT @IsExists = 0x1 FROM Users WHERE UserName='{0}'
                              SELECT @IsExists as 'IsExists'
                              ", user);
conn.Open();
OleDbCommand cmd = new OleDbCommand(sql, conn);
bool IsExists = Convert.ToBoolean(cmd.ExecuteScaler());
conn.Close();
return IsExists;