SBirthare 是对的,但是,由于他没有解释如何执行此操作,请允许我(这是假设您使用您标记的 C# 服务器端语言选项,所以我相信您这样做。这也假设表名“FirstName”和“LastName”列所属的实际上是“UserProfile”):
由于 WebMatrix 带有 SQL Server-CE,我们可以为此使用一个简单的 SQL 查询。
首先设置与数据库的连接:
var db = Database.Open("Users");
接下来,编译要用于查询的适当字符串(使用简单的字符串变量):
string selectQueryString = "SELECT FirstName, LastName FROM UserProfile";
上面的字符串在传递给Query()
C# 方法(如下所示)时,将IEnumerable<dynamic>
返回从数据库返回的所有“FirstName”和“LastName”的列表(特别是)。如果您只希望返回某些行,您可以使用WHERE
SQL 字符串中的子句,因此您可以代替上面的字符串(这只是一个示例,您必须定制自己的条件以适应您的情况,但这应该给你一个简单的例子):
string selectQueryString = "SELECT FirstName, LastName FROM UserProfile WHERE Email = @0 AND UserID = @1";
如果你还不知道的话,首先让我来谈谈 the@0
和 the是什么。@1
它们是占位符,最终将填充您想要测试的条件(更多关于这个更进一步)使用这种方法,称为“参数化查询”,这将是您对抗 SQL 注入攻击的确凿证据。简而言之:对于在 WHERE 子句中测试的条件,始终使用这种方法(我真的不能强调这一点)。
现在,我不确定您对 SQL 查询了解多少,但它们可以非常强大和有用,并且通过使用诸如LIKE
, ORDER BY
, GROUP BY
, JOIN
, UNION
, AND
,OR
甚至子查询之类的东西,以及许多其他关键字和方法,你真的可以让 SQL 查询按照你想要的顺序返回任何你想要的东西(一个很棒的初学者 SQL 查询教程可以在这里找到:http ://www.sqlcourse.com/index.html )。
好的,继续……一旦你按照你想要的方式编写了 selectQueryString,你只需要存储它,就像这样:
int ID = 6;
string email = "testEmailName@gmail.com";
var queryResultsList = db.Query(selectQueryString, email, ID); //Here the first argument passed to the `db.Query()` method is the query string, but each additional argument passed (and you can actually pass an array of values here instead if you want) is used to fill the `@0` and `@1` placeholders you formed in your string earlier (order is ever important here!).
并显示它,如下所示:
foreach (var row in queryResultsList)
{
//Do something for each row returned, here!
<div>FIRST NAME: @row.FirstName</div><br/>
<div>LAST NAME: @row.LastName</div>
{
抱歉,如果这有很多需要考虑,但我想我至少会向您展示实现这一目标所需的所有步骤。真的没有那么多,我只是想在很长一段时间内给你一堆有用的指示:)
无论如何,如果您有任何问题或我需要澄清任何事情,请告诉我。
编辑:
好吧,我刚刚看到您使用 MVC 而不是网页。我的答案来自网页环境,但老实说,我不确定它是否会有所不同,因为我从未使用过 MVC。无论哪种方式,SQL 查询本身都应该是相同的,因为我们都使用 C#,idk。
无论哪种方式,如果我被告知此答案不适合场景或对您没有用处,我很乐意将其删除。