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中间的一种配置。具体是什么意思呢?…

python 语句简写_自学Python-语句之列表推导式

先举例分析运行过程:例如:#将list_a[1,2,3,4,5]元素扩大10倍,生成新的列表。如果按传统的for循环来写:--------------------list_a[1,2,3,4,5]list_b[]for x in list_a:list_b.append(x*10)print(list_b)输出:[10, 20,…

Qt中使用OpenSSL

概述 OpenSSL官网 OpenSSL官网:OpenSSL是一个开源跨平台的加密库,应用广泛。Windows提供了自己的一套加密认证API,感兴趣的话可以参考:Windows Authentication Overview。 Qt官方文档: Secure Sockets Layer (SSL)…

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

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

数学学习过程中的感悟(一)

前言 最近在考研复习,回顾自己的学习数学的过程,有一些感悟,在此记录一下。 正文 大学的时候,学习到了高数,但是接触不久就丧失了兴趣。明明中学时代还很喜欢学习数学,为什么到了大学,一点兴…

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

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

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

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

python编译make_Python在Linux下编译安装

【准备环境】Linux centos【前言】1 linux下默认带Python,带的是2.7版本的 ,如果需要升级版本,需要把系统的自带的Python改名或者卸载,再次安装你所需要的Python版本,centos下由于yum依赖自带的Python2.7,所…

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

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

【转】C# 网络连接中异常断线的处理:ReceiveTimeout, SendTimeout 及 KeepAliveValues(设置心跳)

在使用 TcpClient 网络连接中常常会发生客户端连接异常断开, 服务端需要设置检测手段进行这种异常的处理; 1、对于短连接, 通过对 Socket 属性ReceiveTimeout 和 SendTimeout 设置恰当的值, 使得程序在进行读/写时超时, 会产生 SocketException 异常, 通过检查这个…

python 几何教学_opencv-python教程学习系列11-几何变换

前言opencv-python教程学习系列记录学习python-opencv过程的点滴,本文主要介绍几何变换,坚持学习,共同进步。系统环境系统:win7_x64;python版本:python3.5.2;opencv版本:opencv3.3.1&#xff1b…

【数学+编程】对数学函数进行抽象

目的 将数学函数抽象为类。 类名 函数 属性 基本属性 表达式定义域值域周期性、单调性等特性 方法 求值:返回值平移:返回新的函数伸缩:返回新的函数反转:返回新的函数复合:参数为另外一个函数,返回…

2020-12-19

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

【数学】定积分和不定积分的区别

不定积分的研究对象是某函数下的映射关系积分后,得到怎样的新的映射关系。 定积分的研究对象是积分的值。

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

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

【信号与系统】系统特性

系统 系统就是一个包含f(t)、y(t)及其衍生函数(如导数,复合函数)的方程。 所以在你看到一个方程的时候,第一反应是: 方程描述了一个系统,在时刻t,可以把f(t)变成y(t)。如何变的呢?由…