gpt4 book ai didi

c# - 无法检索行值?

转载 作者:行者123 更新时间:2023-11-29 22:11:58 27 4
gpt4 key购买 nike

我正在使用 TableAdapters 建立连接并通过我的数据库表进行查询。我有这样的疑问:

SELECT salt FROM users WHERE (username = @usernameOrEmail) OR (email = @usernameOrEmail)

您可以想象,由于用户名和电子邮件字段是唯一的,因此它只能检索 1 行,该行可以为 NULL,也可以实际上包含盐,具体取决于 usernameOrEmail 参数是否具有与任何用户名或电子邮件匹配的字符串。

我使用此代码来调用查询并通过以下方式传递参数:

public void checkEmailOrUsername(string emailOrUsername)
{
DataTable userDataTable = userInfoTableAdapters.getUserSalt(emailOrUsername);
DataRow userDataRow = userDataTable.Rows[0];
string saltValue = userDataRow["salt"].ToString();
}

当参数与表中的用户名或电子邮件不匹配时,它可以正常工作,但是当电子邮件或用户名匹配时,它就会中断。它在这一行给出了一个错误:

DataTable userDataTable = userInfoTableAdapters.getUserSalt(emailOrUsername);

这是错误:

An exception of type 'System.Data.ConstraintException' occurred in System.Data.dll but was not handled in user code

Additional information: Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints.

最佳答案

不一定会返回一个盐。考虑以下两个帐户:

Username: john.smith, Email: John.Smith@Email.com

Username: John.Smith@Email.com, Email: JohnSmith2@Email.com

您的查询将返回两行。首先要检查一下,如果不能解决问题,您可以发布 userInfoTableAdapters.getUserSalt(emailOrUsername) 的内容以及堆栈跟踪吗?

关于c# - 无法检索行值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31543553/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com