我在Web窗体中有三个文本框,它是用户必须输入以注册的用户名,密码和IC编号。如果输入的人员的IC号码与数据库中任何记录的IC值相匹配,则会将该人员输入的用户名和密码更新为具有匹配IC的该记录的用户名字段和密码字段。如果人员输入的IC不匹配数据库中任何记录的IC,则不会更新任何现有记录,并且它会说IC不存在于标签中。目前lblErrorMessage.Text =“IC不存在”;在catch例外中不起作用。如果输入的IC不存在于数据库中,它只会重定向到已注册,即使是tho。任何帮助?如果数据库中已存在值,如何进行错误验证?
回答
您需要UPDATE
而不是INSERT
,INSERT
用于插入新记录。您目前正在做的是更新现有记录,而不是插入它。
像:
using(SqlCommand cmd = new SqlCommand())
{
Guid guid = Guid.NewGuid();
string sql = @"UPDATE patient
SET
pUserName = @pUserName,
pPassword = @pPassword
WHERE pIC = @pIC";
cmd.Parameters.AddWithValue("@pIC", txtIC.Value);
cmd.Parameters.AddWithValue("@pUsername", txtUsername.Value);
cmd.Parameters.AddWithValue("@pPassword", txtPassword.Value);
cmd.Connection = con;
cmd.CommandText = sql;
con.Open();
cmd.ExecuteNonQuery();
//rest of the code
}
@Jordjmax你不能使用单个查询来更新或插入。检查项目是否存在,然后使用适当的查询 –
谢谢,如果我在数据库中存在的文本框中输入一个nric号码,它会起作用。但是,如果我输入的数据库中不存在的IC,它仍然会返回到Response.Redirect(“registered.aspx”);但没有任何内容插入到数据库中,所以它很好。我希望它显示这个lblErrorMessage.Text =“IC不存在”;如果输入的IC在数据库中不存在,则不会重定向到registered.aspx。看起来它没有工作@Habib – Pony
@Jjjjmax,正如Sergey已经解释的那样,你需要两个不同的查询,你可以是INSERT或UPDATE表。你可以查询数据库,看看你是否已经有了一个违反你的ID的记录,或者你可以编写一个程序来做'UPSERT'看看[this](http://stackoverflow.com/questions/18873747/fast-upsert-sql -server-2008-r2) – Habib
UPDATE table_name
SET column1 = value1, column2 = value2,...
WHERE some_column = some_value;
要 “插入” 到现有的记录。你需要更新它。代替Insert
如何验证IC的错误? @Noran – Pony
使用UPDATE
语句替换您string sql
与此
string sql = "UPDATE patient SET [email protected], [email protected] "+;
"WHERE [email protected]";
我不熟悉C#,但你应该做这样的事情:
首先,检查用户输入数据库;
("SELECT * FROM patient WHERE pIC = 'picinputVar'");
然后,检查if语句是否返回任何值。如果它没有打印按摩说pIC不存在。
,如果它确实使用了更新,而不是INSERT
("UPDATE patient SET pUsername='usernameinput', pPassword='passwordinput' WHERE pIC='picinputVar'");
谢谢,我在标签上留下了pIC不存在的错误消息。我在catch异常处的代码不起作用。如何写if语句?也抓到异常呢? @VeilSide – Pony
- 1. 如果字段在数据库中不存在,如何进行文件验证?
- 2. 如果在数据库中存在错误值C#检查
- 3. 如果值已经存在,如何更新领域数据库
- 4. 如何在Laravel 5.2中无数据库进行身份验证?
- 5. Phonegap - 如果数据库已经存在
- 6. 验证:在课堂上或数据库中进行验证?
- 7. 如何验证我的数据库中存在的数据sqlite
- 8. 值验证是否已经存在于数据库
- 9. 做验证在存储过程中,如果数据已经存在
- 10. 如何闪存错误进行特定的验证
- 11. 验证错误数据库在codeigniter
- 12. ActiveRecord如何验证记录已成功保存在数据库中?
- 13. 从C#中,如何验证表是否已存在MS Access数据库
- 14. JqGrid - 验证数据,如果不存在数据库中显示警报
- 15. 如何进行身份验证而无需点击数据库?
- 16. 在存储到SQLite数据库之前进行表单验证#
- 17. 如何知道特定值在数据库中已存在?
- 18. 已验证的LDAP密码未存储在fos_user数据库中
- 19. 基于数据库中的值进行表单验证
- 20. 在验证数据库中值的心不是已经
- 21. 如何在JavaScript中对数据库中的现有用户进行验证?
- 22. 如何在数据库中存储Windows身份验证信息
- 23. 如何验证Python中是否存在Neo4j图形数据库?
- 24. 如何验证Laravel 4中是否存在数据库关系?
- 25. 如何在需要调用数据库时在Silverlight/RIA中进行验证?
- 26. 如何在数组中存储表单验证错误
- 27. 如何验证/在SQL数据库
- 28. 如何进行默认值验证?
- 29. 在仅进行数据迁移时绕过验证以修复验证错误
- 30. 如何在javascript中重用c#代码进行数据验证?
你不这样做,你使用UPDATE。其他一切都是关于你所期望的。 – evanmcdonnal