【发布时间】:2017-10-06 15:49:28
【问题描述】:
我有一个数据库(用户名(键),全名,密码),我想搜索用户名并在控制台中写出该用户名的全名。 我有这些:
static DataTable dt = new DataTable();
static SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=""path\login.mdf"";Integrated Security=True");
con.Open();
string username="mate";
SqlDataAdapter sda = new SqlDataAdapter("SELECT Nev FROM Login WHERE username='" + username+ "'", con);
sda.Fill(dt);
string fullname;
if (dt.Rows[0][0].ToString() == "1")then?
“Nev”表示全名
我希望它把全名写入“全名”字符串,然后:
Console.Writeline("Welcome {0}",fullname);
你能帮我写这段代码吗?
我只是不知道如何继续我的代码。用户可以登录并注册到应用程序,当他们登录时,我想在他们注册用户名时像“Hello FullName”一样问候他们,存储全名和密码,并使用用户名和密码登录。如果我知道用户名,我只是不知道如何找到全名。 (我是 SQL 初学者)
【问题讨论】:
-
您似乎没有打开连接。
-
刚刚漏了一行,有一个 con.open @chaosifier
-
为什么要使用 DataAdapter?您只想获得一个用户名,是吗?然后使用ExecuteScalar(它会直接返回你需要的字符串,而且速度快很多)
-
你不应该像这样连接一个 SQL 语句,特别是如果你连接的值(用户名)来自用户输入,它会让你对 SQL 注入开放。你应该使用参数。如果您正在寻找一个不同的值,您可以使用 ExecteScalar。 SO上有很多这样的例子
-
一个例子:stackoverflow.com/questions/542510/…。如果没有参数,有人可能会删除您的所有数据、删除用户、删除数据库,甚至更糟