首页 > 解决方案 > 尝试通过 2 个条目从 db 表中进行选择 - 登录

问题描述

private bool CheckIfExist(string username, string password)
    {
         SqlConnection conn = new SqlConnection("Data Source=  
        (LocalDB)\\MSSQLLocalDB;AttachDbFilename=C:\\Users\\Radi\\Desktop\\
        WebSiteF86454\\WebSiteF87300\\App_Data\\Database.mdf;Integrated Security=True");
        SqlCommand cmd = new SqlCommand("SELECT * FROM dbo.TableUsers WHERE Username=@username and 
        UserPassword=@password", conn);
        cmd.Parameters.AddWithValue("@Username", username);
        cmd.Parameters.AddWithValue("@password", password);
        conn.Open();
        SqlDataAdapter adpt = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        adpt.Fill(ds);
        conn.Close();
        int count = ds.Tables[0].Rows.Count;
        if (count == 1) { return true; }
        else { return false; }; 
    }

您好,我对 sql 很陌生,如果我的问题有一个微不足道的答案,我深表歉意。

我正在尝试通过数据库中的表进行登录检查。使用上面的代码,您可以看到我正在基于 2 个字段(用户名和密码)检查表中的条目。我在 SqlCommand 处收到错误 - 告诉我不存在这样的表。对于连接字符串,我打开了服务器资源管理器 - >右键单击我的数据库并复制了“连接字符串”的整个内容,所以我很肯定它是正确的。

我的数据库中有 2 个表(或者至少我是这么认为的) - 一个存储一些其他内容,一个存储用户信息。我可以看到另一个 - 称为评论,但我看不到用户内容表(我需要参考的那个)。我将附上一些屏幕截图以显示我所看到的确切内容。我究竟做错了什么?我是否以错误的方式创建表格?我是否以无效的方式引用它?任何帮助将不胜感激,谢谢。我没有看到或无法选择的表是 TableUsers。如您所见,我在视觉工作室中看到了它,但在 SQL 管理工作室中没有。

Agan - 错误是我无法引用我需要的表格。

来自 SQL 服务器工作室 来自 VisualStudio

标签: c#sqlsql-server

解决方案


如果它说“没有这样的表......”那么你拼错了表名。再检查一遍。我会使用代码检查表 show tables from [database];列表并将其列在一些数据表中。尽管如此,“没有这样的表......”表示您的 ConnectionString 是有效的。顺便说一句,我建议您,如果您只需要查询中的真/假,那么,您宁愿使用select count(*) from [table] where password=@password and user=@user. 然后,代替填充数据集/数据表,然后计算行数,而是使用 ExecuteScalar 将其存储到整数变量 - 它更快且资源消耗更少。


推荐阅读