【问题标题】:getting data from one table to another in asp.net在asp.net中从一个表到另一个表中获取数据
【发布时间】:2012-10-31 20:33:24
【问题描述】:

我有两个表,分别是注册和用户。

注册表:

PID(primary key,autoincrement)
email
password
name
etc

用户:

UserID
Address
etc

如果有人注册,则数据将存储在注册表中。

现在,如果我想在用户表中插入数据,那么如何为刚刚注册的那个人插入数据?

例如:注册表

PID  email        name
1    abc@ab.com   xyz

我想将数据插入到具有PID=1的用户表中

并且在登录后(通过电子邮件和密码完成)只有人可以在 USER 表中插入数据。

对此的查询是什么?

我应该在User 表中添加一些常用列吗?

【问题讨论】:

  • 这两个表是如何相互关联的?我没有看到一个明显的列来建立关系。
  • 不清楚登录后要做什么?再次插入用户表?从用户表中读取数据?
  • 可能将列PID添加到用户表作为注册表的外键
  • 我对数据库不太了解。我想添加到用户表中,数据应该与注册表相关。
  • ya..登录后我想插入到 USER 表中,并且该详细信息应与注册表相关所以当我为特定人员获取数据时,我应该获取表 Registration 和 USER 的详细信息跨度>

标签: asp.net sql-server


【解决方案1】:

向用户表添加新列:

PId - 它应该是注册表中 Pid 列的外键。在此处阅读有关外键的信息:

http://www.w3schools.com/sql/sql_foreignkey.asp

插入用户表的查询应该是:

Insert into Users(pid,email,name) values(1,'abc@ab.com','xyz')

也许您想检查是否存在具有已注册凭据的此类用户?所以也许先尝试选择这样的用户,如果没有,只插入,所以要检查,你应该先添加:

If Not exists(select 1 from Registration where pid = 1)

登录时获取数据的查询应该是:

Select * from users join registration on users.pid = registration.pid
Where registration.username = 'given user name'

或者不是用户名,而是通过两个表中的任何一个中的任何其他列进行比较。您可以这样做,因为您将两个表连接到一个表中。

在此处了解加入:

http://msdn.microsoft.com/en-us/library/ms191517(v=sql.105).aspx

【讨论】:

【解决方案2】:

只需在表注册表上创建触发器。这样当有人注册时它也会自动将数据插入到用户表中。

在注册表中触发后写入插入。

例如查看此链接:

http://www.dotnet-tricks.com/Tutorial/sqlserver/OPUH170312-After-Trigger,-Instead-of-Trigger-Example.html

【讨论】:

    猜你喜欢
    • 2017-01-14
    • 2020-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-14
    • 2021-07-04
    • 1970-01-01
    相关资源
    最近更新 更多