制作一个页面,每个用户都有自己的信息,gridview等

时间:2012-06-25 07:27:00

标签: c# asp.net

用户登录后,我需要一个页面,其中每个注册用户都有自己的gridview和绑定到gridview的控件。 该页面将包含一个绑定到gridview的sqldatasource。

我考虑过在数据库中为每个用户创建一个新表,并在表单加载后获取用户登录后的用户名,获取表名并将sqldatasource绑定替换为他的表名和其他控件字段表名给他的。

或者还有其他方法吗?

4 个答案:

答案 0 :(得分:0)

您当然不需要为每个用户提供单独的表格!

为什么不在其中一个表中添加额外的来存储用户名。这样,每条记录都被标记为属于特定用户。读取已记录用户的数据只是表格中的简单Where子句。

答案 1 :(得分:0)

不,那不对, 您无法为每个用户创建表。想想你有10,000个用户,而不是你的数据库包含10,000个用户。

您必须只创建一个表,其中保存所有用户的信息。 您必须将用户名或电子邮件等标识保存到数据库中 当用户通过用户名或电子邮件登录您的应用时,将根据用户名或电子邮件从表中获取信息并设置为gridview。

它可以帮助你......

答案 2 :(得分:0)

这不是Logical为每个用户创建一个表,保存表中的所有用户信息更好更快 为此,您可以使用用户ID为用户信息创建一个表,并为用户数据创建另一个用户数据表。并在它们之间建立关系

答案 3 :(得分:0)

你肯定想为每个用户创建一个单独的表。你打算如何将它扩展到多个用户?

用户需要在其网页上看到哪些数据?了解gridview不必直接映射到数据库表。它可以映射到任何数据集。因此,您可以以有意义的方式将数据存储在数据库中(关系实体),然后以有意义的方式查询和显示数据。

例如(这是一个人为的例子,因为我们不知道你有什么数据),如果你有用户需要查看他们订购的产品列表,那么你就不会创建一个表每个用户的产品。您可能有一个表格用于每个实体(用户,产品,订单等):

Users
----------
ID
Name
etc.

Products
----------
ID
Name
etc.

Orders
----------
ID
UserID
DateOrdered
etc.

由于每个订单都有一个产品清单,而且每个产品都有许多订单,这是一个多对多的关系。因此,您可以为该关系创建链接表:

OrderedProducts
----------
OrderID
ProductID

然后,要在UI中显示,您将查询数据以仅获取该用户订购的产品:

SELECT DISTINCT
  Products.ID,
  Products.Name,
  Orders.OrderedDate
FROM
  Users
  INNER JOIN Orders ON Users.ID = Orders.UserID
  INNER JOIN OrderedProducts ON Orders.ID = OrderedProducts.OrderID
  INNER JOIN Products ON OrderedProducts.ProductID = Products.ID
WHERE
  Users.ID = @userID

这应该为您提供该用户订购的不同产品列表以及订购时间。 (请注意,此代码是免费的,我没有便于测试它的数据库。)

因此每个用户都会看到自己的具体信息。

您希望确保以可用的关系方式对数据进行建模。定义您的实体(通常是您在数据中表示的真实世界)并定义表来表示这些实体。以自然的方式将它们联系在一起。在处理针对明确定义的数据的复杂查询时,关系数据库很好。不要试图从用户的角度围绕显示器的性质设计数据库,围绕存储信息的性质进行设计。