都会背了,就是不知道咋个理解它,看看我注释的那些有错,麻烦改下
代码如下:
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SQL验证登录
{
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 coon = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=E:\C#程序\第二阶段\第二阶段\ADO.NET入门\AOD.net.mdf;Integrated Security=True")//连接数据库文件
{
coon.Open();//打开数据库连接
using(SqlCommand cmd=coon.CreateCommand())//创建一个执行SQLserver d的命令
{
cmd.CommandText = "select *from fuser where username='"+username+"'";// 执行命令
using( SqlDataReader reader=cmd.ExecuteReader())//这儿是啥:求详解
{
if (reader.Read())//想问一下reader的值是什么,是调用了read()方法后我知道返回的是一个bool值 ,老师说一条一条往下看,如同有匹配的就返回ture,没有就fase,我这不明白 求解
{
string dbpass = reader.GetString(reader.GetOrdinal("passwors"));我到这不知道reader是干啥的,给GetOrdinal传个列,GetOrdinal获得序号然后给GetString传个序号,GetString把序号转换成STRING使这样吗,可我还不知道reader的值是啥
if (password == dbpass)
{
Console.WriteLine("登录成功");
}
else { Console.WriteLine("密码错误"); }
}
else
{
Console.WriteLine("用户名错误");
}
}
}
}
Console.WriteLine("测试正常");
Console.ReadKey();
}
}
}
|