c# 与mysql连接_实现C#与数据库的连接(在C#中访问数据库)

本文介绍了如何在C#中实现与MySQL数据库的连接。通过使用OleDbDataAdapter对象,根据指定条件查询数据库,并将数据填充到DataTable中进行验证。文章讨论了在处理登录验证时可能出现的问题,如数据不清除导致的误判,并给出了改进措施,包括输入错误后的反馈和限制连续错误次数的机制。
摘要由CSDN通过智能技术生成

DataAdapter对象同样有多种,为了访问Access,必须使用OleDbDataAdapter

在类定义头部加入

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是源数据库在内存中的映像,C#将数据读出并存放到其中,再进行其他操作。

在类定义部分加入

DataTable Login_dt=new DataTable();

该语句定义了变量Login_dt以引用一个新的DataTable

int RowPosition=0;

定义变量用于存放初始的记录指针位置,此变量备用

在“提交”按钮的单击事件中加入

Login_da.Fill(login_dt);

该语句将DataAdapter读取的数据填充到刚建立的DataTable中,以便于C#读写

显然,若用户名和密码输入错误,dataadapter无法从login表中找到满足条件的记录,datatable中也必然是空的,无记录。

Datatable具有Rows集合,表示其中的行,该集合具有Count属性,用于判断行的数量,因此可在填充完datatable后,执行以下语句:

if (Login_dt.Rows.Count == 0)

MessageBox.Show("错误的用户名或密码!");

else

MessageBox.Show("正确,欢迎访问!");

该代码初次运行似无问题,但是多运行几次就会发现,若某次输入的用户名和密码是正确的,则之后若再输入错误,同样会提示正确。

究其原因, 每次对datatable进行fill操作时,不会自动清空上次的数据,导致行数始终不为0,从而判断出错。

解决方法:在执行fill方法之前,先执行

Login_dt.Clear();

即可。Clear方法将先行清空datatable中的数据。

第五步、对登录界面细节的改进

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的方法步骤,另外以上可能有诸多错误,希望大家热心指正。谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值