【发布时间】:2012-12-31 21:21:55
【问题描述】:
我有一个简单的登录页面。我想要做的是当登录正确时,我想显示所有列 - 我不想手动指定在 while 循环中显示哪些列。
这是我在 C# 中使用 SQL Server 2008 express 的示例:
private void Authenticate(string userName, string password)
{
string connString = "server=.\\sqlexpress; database=TestDatabase; trusted_connection=true";
SqlConnection conn = new SqlConnection(connString);
conn.Open();
string sqlCommand = "select * from Registration where UserName='" + userName + "' and Password='" + password + "'";
SqlCommand command = conn.CreateCommand();
command.CommandText = sqlCommand;
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
lblResult.Text += reader["CourseId"] + " " + reader["CourseName"] + " " + reader["Instructor"] + "<br />";
}
}
我知道这不是最好的实现方式。
如何使用从注册表返回的所有内容填充 lblResult?
【问题讨论】:
-
LINQ + DataSource 也许?
-
你可以通过它的序数位置访问阅读器[]
-
其中 UserName='" + userName + "' --- 真的吗?谷歌 SqlParameters
-
您当前的实现容易受到 SQL 注入攻击!请阅读有关该主题的 MSDN 文章:[SQL 注入] (msdn.microsoft.com/en-us/library/ms161953.aspx)
-
@Alexander 你将如何更改代码以避免 SQL 注入攻击?
标签: c# sql-server sql-server-2008 c#-4.0 login