vb.net datagridview数据批量导入sql_【自学C#】|| 笔记 44 ComboBox:组合框控件数据绑定...

37390ca00248e19598e414df77d01d46.png

一、ComboBox:组合框控件数据绑定

    在 Windows 应用程序中很多控件都提供了 DataSource 属性,并将 DataSet 或 DataTable 的值直接赋给该属性,这样在控件中即可显示从数据库中查询出来的数据。
    常用的数据绑定控件有文本框(TextBox)、标签(Label)、列表框(ListBox)、组合框(ComboBox)、数据表格(DataGridView)等。
    下面以组合框控件为例来讲解一下数据绑定的应用。

可视化数据绑定

    组合框控件(ComboBox)在 Windows 窗体应用程序中是常用的控件,例如用于存放省市信息、专业、图书类型、房间类型等。
    在 Windows 窗体应用程序中提供了可视化数据绑定和使用代码绑定数据的方法。
    使用数据绑定的方式绑定组合框控件直接单击组合框的 "33b4556fd48a670c41c326d7929ec383.png" 图标,弹出“ComboBox任务”菜单,如下图所示。

178c5b4c3463c7a3d768f8aafdc2f012.png

在窗台上,找到ComboBox控件,并且点击上面的图标,就会弹出上面的那个。然后点击复选框,就会变成下面这样。

6dd058d2a29226cb55df0bfaaac34f57.png

在该菜单中

  • “数据源”组合框用于选择要连接数据库中的数据表,相当于为控件设置 DataSource 属性;

  • “显示成员”组合框用于设置在组合框中显示的列名,可以通过组合框的Text属性获取;

  • “值成员”组合框用于设置组合框中的隐藏值,可以通过组合框的 Value 属性获取;

  • “选定值”组合框用于设置组合框中所选值使用的列名。

下面通过实例来演示组合框的绑定。

    1.例

    创建 Windows 窗体应用程序,设置显示专业信息的组合框,并将“显示成员”设置为专业名称列、将“值成员”设置为专业编号、将“选定值”设置为“计算机”。

    根据题目要求,先创建专业信息表,建表语句如下。

create table major(    id int primary key identity(1,1),    name varchar(20) unique);

向该表中添加计算机、英语、自动化 3 个专业信息,通过“ComboEox任务”菜单设置数据绑定项,首先选择“数据源”组合框,并单击“添加项目数据源”链接,弹出如下图所示的对话框。

    总之找到数据源,点击组合框,点击“添加项目数据源”。

5f6d5972b4f0731829ad8f728d6b412a.png

    弹出这个。

e2029e85b798ab1e2f550f7b4f035f3f.png

    下一步

98778e67f3e34a53afbee0132b47863d.png

    下一步

704f1427f482918d46d8540e1c48ac0a.png

单击“新建连接”

1fbf2de45474e81840a9ec3b7f2e6a1b.png

    建立数据库连接。

e8f3214b2f2578a1d9ff3f7b4d3f9832.png

也就回到这里。

    其实也是之前建立好的。

704f1427f482918d46d8540e1c48ac0a.png

然后选则一个选项。

3a084a2ef8449b462989129994cc84ca.png

下一步

e83c1ec36886aa2fd2639a0f00939955.png

下一步

6ab33bf6c1dd4ce0fa0a2441f41f2812.png

选中要使用的数据表

959a288e066f8461d38b45d149cdbd63.png

数据源也就设置好了。

45aba63fbdca3508ca3a570a1fe003a7.png

    这里

        显示成员:则表示在下列菜单中输出的项。

        值成员:一般就是标号,也就是ID。

        选定值:也就是字段名,所以这里依旧是name。

7bce68efc43402304e82e1c7e0a905f3.png

    然后通过运行也就成功了。

bdb27773efa382fcf43070fbdb1e1ad9.png

使用代码绑定组合框

与数据绑定控件设置的属性类似,需要通过代码设置组合框的数据源、显示成员、值成员等内容。
具体设置的语句如下。

组合框对象.DataSource = DataTable 的对象//设置组合框的显示成员属性组合框对象.DisplayMember = 列名//设置组合框的值成员属性组合框对象.ValueMember = 列名

下面通过实例演示如何通过编写代码绑定组合框。

    1.例

    使用代码的方式绑定组合框显示专业名称,每次切换选项后弹出消息框显 示组合框中当前选择的值。

    将上一面的实例中的数据绑定方式换成代码方式来绑定组合框显示专业名称,在窗体的加载事件中加入绑定组合框的代码,代码如下。

private void Form1_Load(object sender, EventArgs e)        {            //数据库连接串            string connStr = "Data Source=.;Initial Catalog=text;User ID=sa;Password=123";            //创建SqlConnection的实例            SqlConnection conn = null;            try            {                conn = new SqlConnection(connStr);                //打开数据库                conn.Open();                string sql = "select * from userinfo";                //创建SqlDataAdapter类的对象                SqlDataAdapter sda = new SqlDataAdapter(sql, conn);                //创建DataSet类的对象                DataSet ds = new DataSet();                //使用SqlDataAdapter对象sda将查新结果填充到DataSet对象ds中                sda.Fill(ds);                //设置组合框的DataSource属性                comboBox1.DataSource = ds.Tables[0];                //设置组合框的DisPlayMember 属性                comboBox1.DisplayMember = "name";                //设置组合框的ValueMember属性                comboBox1.ValueMember = "id";            }            catch (Exception ex)            {                MessageBox.Show("出现错误!" + ex.Message);            }            finally            {                if (conn != null)                {                    //关闭数据库连接                    conn.Close();                }            }        }

分析:

    首先导入包:using System.Data.SqlClient;

    然后是连接数据库,并进行表的查询。

    再通过DataSet类,进行往组合框控件中存放数据。

运行结果:跟上面一样。

bdb27773efa382fcf43070fbdb1e1ad9.png

    如果在上面的组合框中,添加选项改变事件。并将组合框中当前显示的内容显示到消息框中,代码如下。

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)        {            if (comboBox1.Tag != null)            {                //获取组合框中显示的值                string name = comboBox1.Text;                //弹出消息框                MessageBox.Show("您选择的专业是:" + name);            }        }

分析:

    当组合框中的内容发生改变时触发。

    也就是通过消息框的方式进行输出。

运行结果:

1eb2867986b14891ed009e62fb532771.png

在实际工作中,使用代码绑定的方式是应用最多的方式,一方面体现了代码的灵活性,另一个方面也增强了代码的可移植性。

二、DataGridView:数据表格控件数据绑定

    数据表格控件是 WinForm 窗体应用程序中用于查询时以表格形式显示数据的重要控件,同样数据表格控件也可以使用可视化数据绑定和代码的方式来绑定数据表中的数据,并能在数据表格控件中实现对表中数据的修改和删除操作。
    下面分别介绍使用可视化数据绑定方式绑定数据表格控件和使用代码方式绑定数据表格控件。

可视化方式绑定 DataGridView 控件

    数据表格控件的可视化数据绑定也是通过控件的任务菜单完成的,如下图所示。

    总之先找到DataGridView控件

a3363d584f2135d1d10e38504e8e001a.png

    在“DataGridView 任务”菜单中提供了“选择数据源”“编辑列”“添加列”,以及“启用添加”“启用编辑”“启用删除”“启用列重新排序”“在父容器中停靠”等选项。

其中:

  • 选择数据源:与组合框控件中选择数据源的操作是相同的。

  • 编辑列:用于在 DataGridView 控件中编辑列,包括添加列、给列设置别名等操作。

  • 添加列:用于向 DataGridView 控件中添加列,并且可以在 DataGridView 控件中添加不同类型的控件用于显示新添加的列,例如添加一个按钮用于修改或删除表中的数据。

  • 启用添加:允许用户向 DataGridView 控件中添加一行,相当于将 DataGridView 控件中的 AllowUserToAddRows 属性设置为 True。

  • 启用编辑:允许用户编辑 DataGridView 控件中的值,相当于将 DataGridView 控件中的 Readonly 属性设置为 False。

  • 启用删除:允许用户删除 DataGridView 控件中的值,相当于将 DataGridView 控件中的 AllowUserToDeleteRows 属性设置为 True。

  • 启用列重新排序:允许启用手动列重新设置,相当于将 DataGridView 控件中的 AllowUserToOrderColumn 属性设置为 True。

  • 在父容器中停靠:允许 DataGridView 控件在所在的窗体中最大化。

    下面通过实例来演示以可视化的方法绑定 DataGridView 控件。

    1.例

    使用可视化绑定的方法将专业信息表中的专业编号和专业名称显示在 DataGridView 控件中,并为表中的列名设置别名。

    根据题目要求,完成该实例需要以下步骤。

    1) 窗体设计

    创建 Windows 窗体应用程序,并添加一个用于显示专业信息的窗体,如下图所示。

    总之就是这个DataGridView控件

8e1b349d1d426b83146c05d845d97979.png

    2) 为窗体设置数据源

    在上图所示的界面中单击 DataGridView 控件上的“215af515d5dcef892836ee1604e53b1d.png”按钮,在弹出的“DataGridView 任务”菜单中的选择数据源组合框中为 DataGridView 控件设置数据源。
    选择数据源的方法跟 ComboBox控件的类型差不多,由于在前面的使用组合框的实例中已经为应用程序设置过数据源,所以这里 DataGridView 控件中的数据源直接选择已经设置好的数据源即可。
    在选择数据源后,“DataGridView任务”菜单的效果如下图所示。      

a096db0e1137c7c690da57fa1cecd182.png

    3) 编辑列

    在上图所示的界面中单击“编辑列”,弹出如下图所示的对话框。

5a74b6701c95dd9cd56ea25d448ca085.png

在该对话框的左侧列出了专业信息表(major)中的所有列,右侧列出了列的属性,常用的属性如下表所示。

属性名称说明
Frozen设置用户在水平滚动 DataGridView 控件时列是否移动,默认是 False
ColumnType设置显示列时的控件类型,默认是文本框
DataPropertyName 设置绑定数据源中的列
HeaderName 设置在 DataGridView 列中显示的列标题
Visible 设置该列是否可见
    在上图所示的对话框中将 id 列的列标题 (HeaderText) 属性设置为“编号”、将 name 列的列标题 (HeaderText) 属性设置为“专业名称”。

    完成以上 3 个步骤后运行该窗体,效果如下图所示。

    (我这里其实在连接数据源后,就已经能默认完成了。)

运行结果:

7bb0d91078d3d1eb605ca893b5fd078d.png

    从上面的运行效果可以看出,使用可视化数据绑定方式可以快速完成将数据表中的数据显示在 DataGridView 控件中的操作,并可以很容易地对绑定列的属性进行相关设置。

使用代码绑定 DataGridView 控件

    使用代码绑定 DataGridView 控件时需要为该控件设置数据源 (DataSource) 属性,具 体的语句如下。

DataGridView 控件的名称.DataSource = DataTable 对象 ;

    如果使用 DataSet 对象为 DataSource 属性赋值,则需要使用 DataSet 对象的 Tables 属性选择指定的数据表。

下面通过实例来演示如何使用代码绑定 DataGridView 控件。

    2.例

    使用代码的方式绑定 DataGridView 控件。

    根据题目要求,在窗体的加载事件中加入代码绑定 DataGridView 控件,实现的代码如下。

        private void Form1_Load(object sender, EventArgs e)        {            //数据库连接串            string connStr = "Data Source=.;Initial Catalog=text;User ID=sa;Password=123";            //创建SqlConnection的实例            SqlConnection conn = null;            try            {                conn = new SqlConnection(connStr);                //打开数据库                conn.Open();                string sql = "select * from userinfo";                //创建SqlDataAdapter类的对象                SqlDataAdapter sda = new SqlDataAdapter(sql, conn);                //创建DataSet类的对象                DataSet ds = new DataSet();                //使用SqlDataAdapter对象sda将查新结果填充到DataSet对象ds中                sda.Fill(ds);                //设置表格控件的DataSource属性                dataGridView1.DataSource = ds.Tables[0];            }            catch (Exception ex)            {                MessageBox.Show("出现错误!" + ex.Message);            }            finally            {                if (conn != null)                {                    //关闭数据库连接                    conn.Close();                }            }        }

分析:

    在窗体加载中自动运行。

    首先依旧是连接数据库,并打开数据库,然后执行数据库的查询语句。

    然后通过DataSet类的方式进行控件的传输传值。

运行结果:

8cef7dc9a40140e0532e0feef18c20b2.png

    从上面的运行效果可以看出,通过设置 DataGridView 控件的 DataSource 属性即可绑定 DataGridView 控件,但绑定后的 DataGridView 控件中的标题是数据表中的列名。

    如果需要更改 DataGridView 控件的列标题,则需要在上面的代码中加入以下代码。

//设置第 1 列的列标题dataGridView1.Columns[0] .HeaderText="编号";//设置第2列的列标题dataGridView1. Columns[1].HeaderText="专业名称";

完整代码:

private void Form1_Load(object sender, EventArgs e)        {            //数据库连接串            string connStr = "Data Source=.;Initial Catalog=text;User ID=sa;Password=123";            //创建SqlConnection的实例            SqlConnection conn = null;            try            {                conn = new SqlConnection(connStr);                //打开数据库                conn.Open();                string sql = "select * from userinfo";                //创建SqlDataAdapter类的对象                SqlDataAdapter sda = new SqlDataAdapter(sql, conn);                //创建DataSet类的对象                DataSet ds = new DataSet();                //使用SqlDataAdapter对象sda将查新结果填充到DataSet对象ds中                sda.Fill(ds);                //设置表格控件的DataSource属性                dataGridView1.DataSource = ds.Tables[0];                //设置第 1 列的列标题                dataGridView1.Columns[0].HeaderText = "编号";                //设置第2列的列标题                dataGridView1.Columns[1].HeaderText = "专业名称";            }            catch (Exception ex)            {                MessageBox.Show("出现错误!" + ex.Message);            }            finally            {                if (conn != null)                {                    //关闭数据库连接                    conn.Close();                }            }        }

运行结果:

6193d030950055fc98bfe8f351c96e79.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/437012.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【转】C#Socket编程详解(一)TCP与UDP简介

一、TCP与UDP 1、TCP 1.1 定义 TCP(TransmissionControl Protocol)传输控制协议。 是一种可靠的、面向连接的协议(eg:打电话)、传输效率低全双工通信(发送缓存&接收缓存)、面向字节流。使用TCP的应…

【精华】掌握Qt调试技术

前言 软件调试,是开发过程中必备的技能。通过调试可以发现软件存在的bug,即缺陷。调试可以帮助开发者窥探到软件运行过程中的详细状态,从而为消除bug提供重要信息。调试的英文是debug,前面的de在英文中表示“反对”,“…

ps海报合成教程_如何利用PS制作海报?详细教程来了!

今天能学长给大家带来一套利用PS做【月满中秋】海报的教程。福利干货到,请大家接住!话不多说,直接上教程【月满中秋-第一课】月满中秋-海报制作教程https://www.zhihu.com/video/1187797197951918080为了方便大家阅读,本篇文章特地…

【转】WebSocket详解(一):初步认识WebSocket技术

1、前言 HTML5规范在传统的web交互基础上为我们带来了众多的新特性,随着web技术被广泛用于web APP的开发,这些新特性得以推广和使用,而websocket作为一种新的web通信技术具有巨大意义。 本文将带您认识WebSocket。也可查看本文的下篇&#x…

【Qt调试技巧】Profile配置使用及一些坑

介绍 不知从哪个版本起,Qt Creator中的构建配置中,增加了一种新型配置,名叫“Profile”,如下图所示: 官方对Profile的描述是:Profile是介于Debug和Release中间的一种配置。具体是什么意思呢?…

【转】带你玩转Visual Studio——03.带你了解VC++各种类型的工程

上一篇文章带你玩转Visual Studio——带你新建一个工程一文中提到新建一个工程时会有很多的工程类型(图1),现在将简单介绍各种类型工程的含义和主要用途。由于这里包含的工程类型太多,有很多本人也没有接触过,有些可能理解的不太对的地方还请…

如何调整金格电子章服务器印章_重磅!公安部再度认可电子签名、电子印章法律效力!...

近日,公安部发布《关于修改〈公安机关办理刑事案件程序规定〉的决定》,对《公安机关办理刑事案件程序规定》(以下简称规定)进行了全面修改完善,并将于9月1日起施行。修改后的规定共14章388条。其中,新增的第…

【转】带你玩转Visual Studio——04.带你高效开发

上一篇文章带你玩转Visual Studio——带你了解VC各种类型的工程一文中讲了各种类型VC工程的主要功能和用途。现在将带你一起快速开发c程序。 有过Java开发经验的人都知道Java的常用开发工具(如Eclipse、Intellij IDEA等)都有非常强大的关键字高亮、智能提示、快速追踪等的功能…

【信号与线性系统】知识点与学习攻略

知识点理解 关于正交分解可以看这个视频: https://www.bilibili.com/video/BV1qV411C7u6/ 记住两个完备正交函数集: 一个是正余弦三角函数,非零不同频率项乘积为0,非零同频率项乘积积分为T/2,零频率项乘积积分为T。 一…

2020-12-19

逆变(contravariant)与协变(covariant)是C#4新增的概念,许多书籍和博客都有讲解,我觉得都没有把它们讲清楚,搞明白了它们,可以更准确地去定义泛型委托和接口,这里我尝试画…

微软模拟飞行10厦门航空涂装_《微软飞行模拟器》多人游戏模式演示:可组队飞行...

IT之家3月29日消息 《微软飞行模拟器》(Flight Simulator)是2020年最受期待的游戏之一,开发商Asobo Studio现在分享了一段新的视频,详细介绍了《微软飞行模拟器》的多人游戏模式。《微软飞行模拟器》游戏的主模式将看到所有玩家在同一个世界中一起玩。微…

【转】UDP协议格式以及在java中的使用

UDP协议格式以及在java中的使用 UDP是面向无连接的通讯协议,由于通讯不需要连接,所以可以实现广播发送。UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出现丢包现象,实际应用中要求程序员编程验证。 UDP适用于…

python网页填表教程_PythonSpot 中文系列教程 · 翻译完成

原文:PythonSpot Python Tutorials 协议:CC BY-NC-SA 4.0 欢迎任何人参与和完善:一个人可以走的很快,但是一群人却可以走的更远。在线阅读ApacheCN 学习资源目录PythonSpot 中文系列教程初学者 介绍Python 字符串字符串&#xff0…

【转】TCP/IP协议到底在讲什么?【乐搏TestPro】

用比喻和漫画给有需要的小伙伴解释下IP、TCP捎带题一下各种协议与HTTP协议的关系; 目录: 负责传输的IP协议 确保可靠性的TCP协议 各种协议与HTTP协议的关系 一、负责传输的IP协议 按照层次分,IP(全称:Internet Prot…

Qt中标绘功能的实现方法对比

使用Qt开发桌面程序,经常会有标绘的需求,一般有以下几点: 新建:圆、矩形、椭圆、文字标注,插入图像等;编辑:指对已标绘内容的属性编辑修改功能;删除:指对已标绘内容的删…

【转】PE文件结构详解--(完整版)

(一)基本概念 PE(Portable Execute)文件是Windows下可执行文件的总称,常见的有DLL,EXE,OCX,SYS等,事实上,一个文件是否是PE文件与其扩展名无关,P…

【转】逆变与协变详解

逆变(contravariant)与协变(covariant)是C#4新增的概念,许多书籍和博客都有讲解,我觉得都没有把它们讲清楚,搞明白了它们,可以更准确地去定义泛型委托和接口,这里我尝试画…

【转】GitHub 从单机到联机:玩转 Pull Request

最近在参与一个叫 Exercism 的项目,这是一个由 GitHub 生态工程师 Katrina Owen 发起的编程练习社区,提供了超过50门语言的练习。作为用户,你仅需使用命令行工具即可下载和提交练习,提交后还可以和社区中其他学习者交流讨论。 Exe…

【转】GitHub客户端操作1--仓库相关操作github团队协作流程

1、创建仓库 点击“”,点击Create,然后填写Name为my,点击Create repository,即可创建一个my仓库 2、从本地仓库存放位置,添加test仓库到GitHub客户端 点击“”,点击Add,然后点击Browse,选择仓库存放位置&a…

【转】GitHub客户端操作2--分支操作

简单分支操作 (1)创建新分支:my分支 备注:新创建的分支:my分支里面的内容是和master分支里面的内容是完全一样的。 (2)删除my分支 (3)修改my分支【在my分支上进行项目内…