当前位置: 代码迷 >> ASP.NET >> 小弟刚学ADO.NET,进来问个有关问题
  详细解决方案

小弟刚学ADO.NET,进来问个有关问题

热度:1300   发布时间:2013-02-25 00:00:00.0
小弟刚学ADO.NET,进来问个问题
主要是关于一个小程序,验证数据库的密码和用户输入的密码是否匹配,如果匹配则输出登陆成功,如果不匹配,则输出登陆密码错误,如果查无此用户名信息,则输出用户名不存在。
C#代码如下:
C# code
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data.SqlClient;namespace ConsoleApplication2{    class Program    {        static void Main(string[] args)        {            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);            }            Console.WriteLine("请输入用户名:");            string username = Console.ReadLine();            Console.WriteLine("请输入要插入的密码:");            string password = Console.ReadLine();            using (SqlConnection conn = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDBFilename=|DataDirectory|\Database1.mdf;Integrated Security=True;User Instance=True;"))            {                conn.Open();                Console.WriteLine("Open SQLServer Success!");                using (SqlCommand cmd = conn.CreateCommand())                {                    cmd.CommandText = "select * from T_Users where UserName='" + username + "'";                    using (SqlDataReader reader = cmd.ExecuteReader())                    {                        if (reader.Read())                        {                            //用户名存在                            string dbpassword = reader.GetString(reader.GetOrdinal("Password"));                            Console.WriteLine(dbpassword);                            Console.WriteLine(password);                            if(dbpassword == password)                            {                                Console.WriteLine("登陆成功!");                            }else                            {                                Console.WriteLine("密码错误!");                            }                        }                        else                        {                            Console.WriteLine("用户不存在");                        }                    }                    Console.WriteLine("Success!");                }            }            Console.ReadKey();        }    }}

然后,由于数据库文件是mdf,故将整个项目打包成了rar,希望有人帮忙看看问题出在哪儿。

项目下载地址

注:项目版本是VS2010版的,SQLServer版本是2008SP3

主要问题是:输入正确的密码都输出密码错误,不知道为什么是这样。

求高人解答

------解决方案--------------------------------------------------------
是不是你的数据库“密码”字段设了char型了,要设成varchar型。char型会自动填充空格的。
  相关解决方案