VS2010用OLEDB连接Excel

新手菜鸟,把用vs2010开发时,如何连接Excel来进行操作的过程记录一下。

今天写个简单的程序,从Excel中对比用户名和密码,然后登陆,如果用户名、密码和Excel中对照,则登陆成功,否则登陆失败!

主要是说方法,所以界面就丑了,忽略就可以了。

添加引用

//自定义引用
using System.Data.OleDb;

打开Excel

简单的理解,就是把Excel当成是sql来进行操作。

string Conn_Str = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=D:/个人/VS2010/用户登录/userinfo.xls;" + "Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(Conn_Str);

Provider=Microsoft.Jet.OLEDB.4.0只支持Office97-2003,不支持2007。

如果需要支持2007,使用 Provider=’Microsoft.Ace.OLEDB.12.0

读取Excel中的数据

简单的理解就是拿用户输入的用户名和密码去和Excel里边的用户名、密码去对比,如果完全一致,说明用户名和密码都是对的。否则就登陆失败。

我的excel是这样设置的

ID:序号

username:用户名

passowrd:密码

level:用户权限

static:用户状态

其实,在前期操作的时候,只用到了用户名和密码,权限和状态是为了以后的功能。而且最简单的验证,密码也是明文,同样,是为了说方法,这些忽略吧~

string SQLSTR = "select count(*) from [sheet1$] where username='"+textBox_UserName.Text.Trim()+"'and password='"+textBox_PassWord.Text.Trim()+"'";
OleDbCommand cmd = new OleDbCommand(SQLSTR,conn);
conn.Open();
int count = Convert.ToInt32(cmd.ExecuteScalar());
if (count > 0)
{
MessageBox.Show("登陆成功!");
}
else
{
MessageBox.Show("登陆失败!");
}
conn.Close();

说明:因为Excel的工作簿,默认的第一个是Sheet1,所以在from后边写[Sheet1$];

这语句简单的很,就不重复解释了。

效果

根据上边的所有代码,可以总结成这样的一条命令:

首先,打开Excel文件,作为数据库;

其次,从工作簿Sheet1中读取记录,把符合 username列=用户输入的用户名 和password列=用户输入的密码 的记录数统计出来。

最后,如果这个记录数大于0,则说明有这条记录存在,说明用户输入的用户名和密码是对的;否则,说明用户输入的信息在Excel中不存在,也就是登陆失败。

登陆失败的图

登陆成功的图

最后的结束语

前边的把Excel作为数据库来进行操作,没什么区别,大概都这样。

但是后边的如何判断用户输入的用户名、密码是否正确,思路就太多了。比如先判断用户名是否正确,在判断密码是否正确;比如输入正确后,如何获取到其他字段的值?

在以后的记录中,可能会写出来吧。

猜你喜欢

转载自blog.csdn.net/DLXG001/article/details/90178097