ADO.NET WinForm 编程案例(一)

创建 WinForm 数据库应用程序执行模糊查询
要求输入用户名在数据库中检索用户名并显示该用户的详细信息
使用 ListView 控件显示用户信息

创建示例数据库
数据库示例代码

use master
go

if exists(select * from sysdatabases where name='test3')
drop database test3
go

create database test3 on primary
(
	name='test3_data',
	filename='D:\test3_data.mdf',
	size=5mb,
	maxsize=10mb,
	filegrowth=1mb
)
log on
(
	name='test3_log',
	filename='D:\test3_log.ldf',
	size=5mb,
	maxsize=10mb,
	filegrowth=1mb
)
go

use test3
go

if exists(select * from sysobjects where name='Students')
drop table Students
go

create table Students
(
	studentId varchar(20) primary key not null,
	userName varchar(20) null,
	name varchar(20) null,
	userStateId int null
)
go

insert into Students (studentid,username,name,userStateId) values ('100001','leeho','小白',1)
insert into Students (studentid,username,name,userStateId) values ('100002','dna','小黑',0)
go

设计窗体

设置 ListView 控件的 Columns 属性 添加4项
将 ListView 控件的 View 属性设置为 Details

创建DBHelper类

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;

namespace ADOWinForm
{
    class DBHelper
    {
        public static string conStr = "Data Source=.;Initial Catalog=Test3;"+
            "User ID=sa;Pwd=leeho";
        public static SqlConnection con = new SqlConnection(conStr);

    }
}

构建 Form1 代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace ADOWinForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            /*使用代码初始化界面设置
            this.listView1.View = View.Details;
            ColumnHeader CuserName = new ColumnHeader();
            CuserName.Text = "用户名";
            ColumnHeader CName = new ColumnHeader();
            CName.Text = "姓名";
            ColumnHeader CstudentId = new ColumnHeader();
            CstudentId.Text = "学号";
            ColumnHeader Cstate = new ColumnHeader();
            Cstate.Text = "状态";

            listView1.Columns.Add(CuserName);
            listView1.Columns.Add(CName);
            listView1.Columns.Add(CstudentId);
            listView1.Columns.Add(Cstate);
            */
        }

        //检查用户名是否为空
        public bool CheckInput()
        {
            if (textBox1.Text.Trim() == "")
            {
                MessageBox.Show("请输入用户名!");
                //设置光标位置
                textBox1.Focus();
                return false;
            }
            else
            {
                return true;
            }
        }

        //查找并填充 ListView 控件
        public void FillListView()
        {
            //学生ID
            string studentId;
            //用户名
            string userName;
            //姓名
            string name;
            //状态
            int userStateId;
            //状态字符串形式
            string userState;

            //SQL 查询语句
            string sql = string.Format("select studentId,userName,name,userStateId from "
            +"Students where userName like '%{0}%'", textBox1.Text);
            try
            {
                //创建 Command 对象
                SqlCommand comm = new SqlCommand(sql, DBHelper.con);
                //打开数据库连接
                DBHelper.con.Open();
                //执行 Command 的 ExecuteReader() 方法 返回 DataReader 对象
                SqlDataReader dataReader = comm.ExecuteReader();

                //清空 ListView 控件
                listView1.Items.Clear();

                //如果没有记录
                if (!dataReader.HasRows)
                {
                    MessageBox.Show("没有找到!");
                }
                else
                {
                    //循环读取下一条记录
                    while (dataReader.Read())
                    {
                        //将数据库查到的列值保存到变量中
                        studentId = (string)dataReader["studentId"];
                        userName = (string)dataReader["userName"];
                        name = (string)dataReader["name"];
                        userStateId = (int)dataReader["userStateId"];

                        //将状态值转换为字符串形式
                        userState=userStateId==1?"活动":"非活动";

                        //创建 ListView 项
                        ListViewItem item = new ListViewItem();
                        //设置项头
                        item.Text = userName;
                        //设置Tag属性
                        //item.Tag = (string)dataReader["studentId"];
                        //在项中添加属性
                        item.SubItems.AddRange(new string[] { name, studentId, userState });
                        //将 ListView 项添加到 ListView 控件中
                        listView1.Items.Add(item);
                    }
                }
                //关闭 DataReader 对象
                dataReader.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                //关闭数据库
                DBHelper.con.Close();
            }
        }

        //查询按钮事件
        private void button1_Click(object sender, EventArgs e)
        {
            //检查用户名是否为空
            if (CheckInput())
            {
                //执行检索数据
                FillListView();
            }
        }
    }
}



 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值