access数据库查找以及如果结果中存在多个匹配用户该怎么处理?
查找用户的界面为:
首先对查找条件进行赋值:
if (radioButton1.Checked)
serMatchInfo = "用户姓名";
if (radioButton2.Checked)
serMatchInfo = "用户编号";
if (radioButton3.Checked)
serMatchInfo = "手机号码";
之后判断匹配信息是否输入:
if (serMatchInfo == "")
{
MessageBox.Show("请选择查询条件!", "提示",MessageBoxButtons.OK,MessageBoxIcon.Asterisk);
}
else
{
if (textBoxSearch.Text.Trim() == "")
{
MessageBox.Show("请输入匹配信息!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
else。。。。
然后建立数据库连接,进行查询操作:
serMatchInput = textBoxSearch.Text.Trim();
OleDbConnection conn = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source=****.mdb"); //Jet OLEDB:Database Password=
OleDbCommand cmd = conn.CreateCommand();
cmd.CommandText = "select * from userFile where ["+ serMatchInfo+"]='"+ serMatchInput+"'";
conn.Open();
OleDbDataReader dr = cmd.ExecuteReader();
DataTable dt = new DataTable();
if (dr.HasRows)
{
for (int i = ; i < dr.FieldCount; i++)
{
dt.Columns.Add(dr.GetName(i));
}
dt.Rows.Clear();
}
while (dr.Read())
{
DataRow row = dt.NewRow();
for (int i = ; i < dr.FieldCount; i++)
{
row[i] = dr[i];
}
dt.Rows.Add(row);
}
设定一个参数传入查询结果的行数,以此判断结果。
如果不存在用户:
searchCount = dt.Rows.Count;//记录查询的条数
conn.Close();
if (searchCount == )
{
infoSearch.Show();
infoSearch.Text = "不存在" + serMatchInfo + "为:" + serMatchInput + "的用户信息!";
textBoxName.Text = "";
textBoxName.Text = "";
textBoxId.Text = "";
textBoxPh.Text = "";
textBoxGen.Text = "";
textBoxBir.Text = "";
textBoxAge.Text = "";
buttonNext.ForeColor = Color.Black;
buttonNext.Enabled = false; }
如果存在一个匹配用户:
if (searchCount == )
{
buttonNext.ForeColor = Color.Black;
buttonNext.Enabled = false;
infoSearch.Show();
infoSearch.Text = "一共查询到" + searchCount + "条记录!";
textBoxName.Text = dt.Rows[]["用户姓名"].ToString();
textBoxName.Text = dt.Rows[]["用户姓名"].ToString();
textBoxId.Text = dt.Rows[]["用户编号"].ToString();
textBoxPh.Text = dt.Rows[]["手机号码"].ToString();
textBoxGen.Text = dt.Rows[]["性别"].ToString();
textBoxBir.Text = dt.Rows[]["出生日期"].ToString();
textBoxAge.Text = dt.Rows[]["年龄"].ToString();
buttonClick = ;
}
功能实现截图:
数据库中编号唯一,手机号码实际中也应该是唯一的。那么,如果出现重名的情况怎么办?
建立点击查看下一个的按钮,首先设置当结果只有一个时,该按钮不可点击,当结果为多个时,点击查看下一个,执行。
写一个重名的用户:
在按钮点击事件中:载入查询结果的表格。
然后现在点击查询的事件中,让buttonClick = 0;//这个值是用来记录点击的次数的,进而对应查询结果的行数,这样的话,就能够不论在什么时候点击查询,都能够让多个结果从第一个显示到最后一个,而不出现连续点击的时候重复显示的情况。
对点击查看下一个按钮的事件进行逻辑判断:
private void buttonNext_Click(object sender, EventArgs e)
{
serMatchInput = textBoxSearch.Text.Trim();
OleDbConnection conn = new OleDbConnection("Provider = Microsoft.Jet.OLEDB.4.0; Data Source=xueya.mdb"); //Jet OLEDB:Database Password=
OleDbCommand cmd = conn.CreateCommand();
cmd.CommandText = "select * from userFile where [" + serMatchInfo + "]='" + serMatchInput + "'";
conn.Open();
OleDbDataReader dr = cmd.ExecuteReader();
DataTable dt = new DataTable();
if (dr.HasRows)
{
for (int i = ; i < dr.FieldCount; i++)
{
dt.Columns.Add(dr.GetName(i));
}
dt.Rows.Clear();
}
while (dr.Read())
{
DataRow row = dt.NewRow();
for (int i = ; i < dr.FieldCount; i++)
{
row[i] = dr[i];
}
dt.Rows.Add(row);
}
conn.Close();
if(buttonClick == dt.Rows.Count-)
{
textBoxName.Text = dt.Rows[]["用户姓名"].ToString();
textBoxName.Text = dt.Rows[]["用户姓名"].ToString();
textBoxId.Text = dt.Rows[]["用户编号"].ToString();
textBoxPh.Text = dt.Rows[]["手机号码"].ToString();
textBoxGen.Text = dt.Rows[]["性别"].ToString();
textBoxBir.Text = dt.Rows[]["出生日期"].ToString();
textBoxAge.Text = dt.Rows[]["年龄"].ToString();
buttonClick = ;
}
else
{
buttonClick += ;
textBoxName.Text = dt.Rows[buttonClick]["用户姓名"].ToString();
textBoxName.Text = dt.Rows[buttonClick]["用户姓名"].ToString();
textBoxId.Text = dt.Rows[buttonClick]["用户编号"].ToString();
textBoxPh.Text = dt.Rows[buttonClick]["手机号码"].ToString();
textBoxGen.Text = dt.Rows[buttonClick]["性别"].ToString();
textBoxBir.Text = dt.Rows[buttonClick]["出生日期"].ToString();
textBoxAge.Text = dt.Rows[buttonClick]["年龄"].ToString();
}
}
执行结果:
这样,就能够将相应查询功能写入到scoket数据接收与保存的地方实现功能。
access数据库查找以及如果结果中存在多个匹配用户该怎么处理?的更多相关文章
- c#程序中使用"like“查询access数据库语句的问题
在写使用access数据库的c#程序过程中,遇到各种莫名奇妙的问题.例如使用"like"进行模糊查询,在access查询视图中要使用"*"做模糊匹配(sql中是 ...
- 数据分析---SQL(Access数据库)
1. SQL(Structure Quest Language) 一种结构化查询语言,它是一种通用的关系型数据库操作语言,用于存取数据,查询,更新和管理数据库. 2. 基本语句 Select, Cre ...
- 配置serv-u access数据库遇到的一些问题
配置好access数据库后,需要建个web页面来供用户修改密码,但修改时,提示:odbc被占用无法打开. serv-u一直在保持打开access数据库.我们需要将数据库设置默认打开方式为共享,不锁定. ...
- Java Web项目中连接Access数据库的配置方法
本文是对前几天的"JDBC连接Access数据库的几种方式"这篇的升级.因为在做一些小项目的时候遇到的问题,因此才决定写这篇博客的.昨天已经将博客公布了.可是后来经过一些验证有点问 ...
- c#程序中使用"like“查询access数据库查询为空的问题
今天,在开发的过程中发现了一个特别奇怪的问题:access中like查询时候,在Access数据库中执行,发现可以查询出结果,这是在数据库上执行,select * from KPProj where ...
- 微软BI 之SSIS 系列 - 在 SSIS 中导入 ACCESS 数据库中的数据
开篇介绍 来自 天善学院 一个学员的问题,如何在 SSIS 中导入 ACCESS 数据表中的数据. 在 SSIS 中导入 ACCESS 数据库数据 ACCESS 实际上是一个轻量级的桌面数据库,直接使 ...
- Access数据库导入到SQL Server 2005 Express中
安装好SQL Server 2005 Express后,再安装SQL Server Management Studio Express CTP就可以很方便的使用控制台进行数据库的管理.但SQL Ser ...
- 如何在Asp.net中备份Access数据库?
public void Create( string mdbPath ) { if( File.Exists(mdbPath) ) //检查数据库是否已存在 { thr ...
- Access数据库和SQL Server数据库在实际应用中的区别
1.在Access数据库中简历查询语句的步骤 --> 打开你的MDB --> 在数据库窗口中,点击“查询”,或在“视图”菜单中选择“数据库对象”-> “查询” --> 点击数据 ...
随机推荐
- SpringBoot快速开始Hello World
介绍 Spring Boot跟Spring MVC不太一样,Spring MVC建新项目的时候是要配置很多东西的,而Spring Boot讲究的是快速,提供了很多默认配置,所以新建一个项目不需要手动配 ...
- http协议、web服务器、并发服务器(下)
Web静态服务器-5-非堵塞模式 单进程非堵塞模型 import socket import time def main(): tcp_socket_server = socket.socket(so ...
- Python3 系列之 环境包管理神器 pipenv
环境说明:Windows 10 build 17763 + Python 3.7.2 介绍 pipenv 是在 pip 与 virtualenv 基础上发展而来的,弥补了之前 virtualenv 通 ...
- 查看linux 服务器还剩多少空间
df -hl 或者 df -m
- 掌握PHP垃圾回收机制
php的垃圾回收机制可以简单总结为 引用计数 写时复制 COW机制, 本文主要和大家分享掌握php垃圾回收机制的知识,希望能帮助到大家. 引用计数基本知识 官网的解答如下 每个php变量存在一个叫”z ...
- javaScript 设计模式之中介者模式示例
飞机把注册信息放到铁塔里,发送数据到铁塔,报告其它的飞机一些信息. var feiji = function( name ){ this.name = name; } feiji.prototype. ...
- 行业观察报告:从SAAS困局看行业趋势 ZT
企业管理软件的演化过程 第一阶段:独立开发 典型代表:IBM 这个阶段是将企业的信息化需求整合成硬件+软件的一体化解决方案,从零开始设计开发,适用于通讯.电力.交通等基础设施建设项目.这个阶段的特点是 ...
- Python入门基础之迭代和列表生成式
什么是迭代 在Python中,如果给定一个list或tuple,我们可以通过for循环来遍历这个list或tuple,这种遍历我们成为迭代(Iteration). 在Python中,迭代是通过 for ...
- Android为TV端助力 修改videoview的宽度和高度
如果直接用android的videoview.他是不允许你随意的修改宽度和高度的,所以我们要重写videoview! package com.hysmarthotel.view; import and ...
- 运行 python *.py 文件出错,如:python a.py
运行 python *.py 文件出错,如:python a.py(下图) 原因:没有安装web.py 解决:下载并安装 网址:http://webpy.org/install#install (h ...