全部博文(372)
2012年(372)
分类: 虚拟化
2012-04-23 21:11:33
第一步、建立数据库连接
using System.Data.OleDb;
该语句的作用是指明在本程序中使用OLEDB技术,它是.net环境中访问数据库的一种方法,即ADO.net,ADO指active Data Objects(活动数据对象)
ADO中包含了连接到各种数据库的conncetion对象,为了访问access数据库,必须使用OleDbConnection对象
OleDbConnection Login_conn=new OleDbConnection();
该语句声明了Login_conn变量用于创建一个新的连接
Login_conn.ConnectionString=@”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\temp\clientmanage.mdb”;
该语句指示Login_conn变量该以何种方式连接数据库(本例中使用微软的jet数据库引擎4.0版本),以及数据库的存放位置
Login_conn.Open();
该语句建立了一个实际的连接。
建立连接后,相当于从C#到数据库之间有了一条道路,使C#有能力访问到数据库
第二步、关闭数据库连接
Login_conn.Close();
Login_conn.Dispose();
含义为:先关闭连接,后删除连接
第三步、创建DataAdapter
OleDbDataAdapter Login_da;
该语句定义了一个DataAdapter类型的变量
在“提交”按钮的单击事件中加入
Login_da = new OleDbDataAdapter("select * from login where username='"+this.textBox1.Text+"' and password='"+this.textBox2.Text+"'", Login_conn);
该语句的作用是,根据已打开的数据库连接,按指定条件取出其中的数据,引号中为sql语句
执行完以上语句后,数据库中的内容已被读出。
下一步,需要将读出的数据存放到datatable中。
第四步、使用datatable
DataTable Login_dt=new DataTable();
该语句定义了变量Login_dt以引用一个新的DataTable
int RowPosition=0;
定义变量用于存放初始的记录指针位置,此变量备用
在“提交”按钮的单击事件中加入
Login_da.Fill(login_dt);
该语句将DataAdapter读取的数据填充到刚建立的DataTable中,以便于C#读写
显然,若用户名和密码输入错误,dataadapter无法从login表中找到满足条件的记录,datatable中也必然是空的,无记录。
if (Login_dt.Rows.Count == 0)
MessageBox.Show("错误的用户名或密码!");
else
MessageBox.Show("正确,欢迎访问!");
Login_dt.Clear();
1、当用户输入错误时,应自动清空用户名和密码框,然后将光标置于用户名框内
if (Login_dt.Rows.Count == 0)
{MessageBox.Show("错误的用户名或密码!");
this.textBox1.Text = "";
this.textBox2.Text = "";
this.textBox1.Focus();} 注:focus方法为设置活动对象
2、若用户未输入用户名或密码,会有相应提示
可用一系列的if结构的嵌套来解决该问题,同样也可在提示后设置相应的文本框为活动对象
代码修改如下:
if (this.textBox1.Text == "")
{
MessageBox.Show("用户名不能为空!");
this.textBox1.Focus();
}
else
{
if (this.textBox2.Text == "")
{
MessageBox.Show("密码不能为空!");
this.textBox2.Focus();
}
else
{……………………………………后略
在类定义后 int i = 3;
程序中对应代码可改为:
if (Login_dt.Rows.Count == 0)
{
i = i - 1;
if (i == 0)
{
MessageBox.Show("您已经3次输入错误,不能再使用本系统!");
this.Close();
}
else
{
MessageBox.Show("错误的用户名或密码!您还有"+i.ToString()+"次机会!");
………………………………略
好,今天就写到这里,下次再经过试验与纠正发布连接SQL的方法步骤,另外以上可能有诸多错误,希望大家热心指正。谢谢