黑马程序员技术交流社区
标题:
ADO.NET验证用户名密码的问题
[打印本页]
作者:
郭张浩
时间:
2012-8-10 03:13
标题:
ADO.NET验证用户名密码的问题
运行不成功,
没有提示有语法错误。
实在找不出来原因。
求助
QQ截图20120810031247.png
(23.14 KB, 下载次数: 59)
下载附件
2012-8-10 03:13 上传
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
namespace _01ado
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入用户名");
string username =Console.ReadLine();
Console.WriteLine("请输入密码");
string password = Console.ReadLine();
string dataDir = AppDomain.CurrentDomain.BaseDirectory;
if (dataDir.EndsWith(@"\bin\Debug\")
|| dataDir.EndsWith(@"\bin\Release\"))
{
dataDir = System.IO.Directory.GetParent(dataDir).Parent.Parent.FullName;
AppDomain.CurrentDomain.SetData("DataDirectory", dataDir);
}
using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;
AttachDBFilename=|DataDirectory|\Database1.mdf;
Integrated Security=True;User Instance=True"))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
cmd.CommandText = "select * from User where UserName ='" + username + "'";
using (SqlDataReader reader = cmd.ExecuteReader())
{
//用户名存在
if (reader.Read())
{
string dbpsaaword = reader.GetString(reader.GetOrdinal("Password"));
if (password == dbpsaaword)
{
Console.WriteLine("登陆成功");
}
else
{
Console.WriteLine("密码错误,登陆失败");
}
}
else
{
Console.WriteLine("用户名错误");
}
}
}
}
Console.WriteLine("打开数据库成功!");
Console.ReadKey();
}
}
}
复制代码
作者:
彭书雄
时间:
2012-8-10 07:10
这是一种常见的错误,使用User当做表名的时候查询User表示 需要将表中括号括起来
cmd.commandtextt= "selelct * from [user] "
因为 user 在数据库中是关键字,所以会被当做关键字类编译,引发了错误,要主要命名的规则,最好加上T_user 或者其他的 避免与数据库中的关键字发生冲突
作者:
吴凡
时间:
2012-8-10 08:37
cmd.commandtextt= "selelct * from [user] " ,表的名字 被解释为关键字了,一般养成好习惯表名T_XX命名,或者和关键字冲突加[USER]
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2