namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            SqlConnection conn = new SqlConnection(@"Server=LEON\MATER;database=test;Uid=sa;Pwd=sa");
            conn.Open();
            if (conn.State == ConnectionState.Open)
            {
                Console.Write("连接成功!");            }
            else
                Console.Write("连接失败!");
            //while (true)
            //{
                        using (SqlCommand cmd = conn.CreateCommand())
            {
                cmd.CommandText = "SELECT * FROM dbo.qwe";
                using (SqlDataReader reader = cmd.ExecuteReader())
                {
                    Console.WriteLine("请输入用户名!");
                    string name = Console.ReadLine();
                    if (name == reader.GetString(reader.GetOrdinal("name")))
                    {
                        Console.WriteLine("请输入密码!");
                        string password = Console.ReadLine();
                        if (password == reader.GetString(reader.GetOrdinal("password")))
                        {
                            Console.WriteLine("欢迎进入系统!");
                        }
                        else
                        {
                            Console.WriteLine("密码错误!");
                        }                    }
                    else
                    {
                        Console.WriteLine("用户名不存在!");
                    }
                }                //}
            }            Console.ReadLine();
            Console.WriteLine("good");        }
    }
}在下面这句出错
 using (SqlDataReader reader = cmd.ExecuteReader())

解决方案 »

  1.   

    namespace ConsoleApplication2
    {
        class Program
        {
            static void Main(string[] args)
            {
                SqlConnection conn = new SqlConnection(@"Server=LEON\MATER;database=test;Uid=sa;Pwd=sa");
                conn.Open();
                if (conn.State == ConnectionState.Open)
                {
                    Console.Write("连接成功!");            }
                else
                    Console.Write("连接失败!");
                //while (true)
                //{
                            using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "SELECT * FROM dbo.qwe";
                    cmd.Connection = conn;  //缺少这一句
                    using (SqlDataReader reader = cmd.ExecuteReader())
                    {
                        Console.WriteLine("请输入用户名!");
                        string name = Console.ReadLine();
                        if (name == reader.GetString(reader.GetOrdinal("name")))
                        {
                            Console.WriteLine("请输入密码!");
                            string password = Console.ReadLine();
                            if (password == reader.GetString(reader.GetOrdinal("password")))
                            {
                                Console.WriteLine("欢迎进入系统!");
                            }
                            else
                            {
                                Console.WriteLine("密码错误!");
                            }                    }
                        else
                        {
                            Console.WriteLine("用户名不存在!");
                        }
                    }                //}
                }            Console.ReadLine();
                Console.WriteLine("good");        }
        }
    }
      

  2.   

    using (SqlDataReader reader = cmd.ExecuteReader())
      {
    reader.Read();
      

  3.   

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Data;
    using System.Data.SqlClient;namespace ConsoleApplication2
    {
        class Program
        {
            static void Main(string[] args)
            {
                using (SqlConnection conn = new SqlConnection(@"Server=LEON\MATER;database=test;Uid=sa;Pwd=sa"))
                {
                conn.Open();
                if (conn.State == ConnectionState.Open)
                {
                    Console.Write("连接成功!");            }
                else
                    Console.Write("连接失败!");
                //while (true)
                //{            Console.WriteLine("请输入用户名!");
                string name = Console.ReadLine();
               
                using (SqlCommand cmd = conn.CreateCommand())
                {
                    cmd.CommandText = "SELECT * FROM dbo.qwe ";
                    
                    using (SqlDataReader reader = cmd.ExecuteReader())
                    {
                        reader.Read();
                        if (name == reader.GetString(reader.GetOrdinal("name")))
                        {
                            Console.WriteLine("请输入密码!");
                            string password = Console.ReadLine();
                            if (password == reader.GetString(reader.GetOrdinal("password")))
                            {
                                Console.WriteLine("欢迎进入系统!");
                            }
                            else
                            {
                                Console.WriteLine("密码错误!");
                            }                    }
                        else
                        {
                            Console.WriteLine("用户名不存在!");
                        }
                    }                }
                }            Console.ReadLine();
                Console.WriteLine("good");        }
        }
    }除了要加reader.Read();密码的输入也出了问题,不过我把密码在数据库的数据类型改为nvarchar就好了最后说一下read,这个只有在执行后才会读数
      

  4.   

    using等同于while循环
    可以在using之前对ExecuteReader()的返回数进行判断,是否大于零。