c# - 尝试通过 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 - 错误是我无法引用我需要的表格。
解决方案
如果它说“没有这样的表......”那么你拼错了表名。再检查一遍。我会使用代码检查表 show tables from [database];
列表并将其列在一些数据表中。尽管如此,“没有这样的表......”表示您的 ConnectionString 是有效的。顺便说一句,我建议您,如果您只需要查询中的真/假,那么,您宁愿使用select count(*) from [table] where password=@password and user=@user
. 然后,代替填充数据集/数据表,然后计算行数,而是使用 ExecuteScalar 将其存储到整数变量 - 它更快且资源消耗更少。
推荐阅读
- python - 如何使用opencv和Python在图像的特定区域找到轮廓?
- python - 如何将 BIGGERkeysses 禁用到用 django 构建的身份验证应用程序中?
- spring-boot - 如何在spring应用程序中使用带有注释映射的simplejdbc调用来调用存储过程?
- typescript - 使用 Typescript 连接 Node Redis 时出现 queueMicrotask 错误
- sql - 每次应用 WHERE 子句时,每个省的 COUNT 总是失败
- r - 闪亮的应用程序出现问题 - 错误“force(ui):找不到对象'ui'”
- javascript - Angular:使用复杂对象时如何默认选择选择中的第一个元素
- c# - 发布 XML 请求后,嵌套对象为“NULL”
- flutter - 在 Flutter 中使嵌套的小部件具有响应性
- angular - EventEmitter 无法在 Angular 中发出具有 KeyValuePair 属性的对象