首页 > 数据库 >【WinForm】 自学笔记二:连接数据库以及查询结果显示

【WinForm】 自学笔记二:连接数据库以及查询结果显示

时间:2023-03-09 19:24:49浏览次数:47  
标签:数据库 ds DataGridView 自学 row 连接 conn WinForm

本次使用 SqlConnection 来连接数据库,使用 DataGridView 来显示查询的结果。最终效果如下:

 

 

一、连接数据库

1.获取连接数据库所需的字符串,包括服务器名称,数据库名称,用户名以及密码,可在配置文件中配置,或直接在代码里写死

在配置文件 App.config 中配置的代码:

<configuration>
  <appSettings>
    <add key="connectionstring" value="server=192.168.3.201;database=Nine_Xhs;uid=sa;pwd=Nine!2021;"/>
  </appSettings>
</configuration>
View Code

2.获取数据库连接对象

        public static SqlConnection CreateSqlConn()
        {
            //从配置文件 App.config 中获取数据库连接字符串
            var conStr = ConfigurationManager.AppSettings["connectionstring"];
            SqlConnection conn = new SqlConnection(conStr);
            return conn;
        }
View Code

3.测试数据库的连通性

        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                if (conn.State == ConnectionState.Closed)
                {
                    conn.Open();
                }

                MessageBox.Show("连接成功","数据库连接测试");
            }
            catch (Exception ex)
            {
                MessageBox.Show("连接失败:"+ ex.Message, "数据库连接测试");
            }
        }
View Code

二、查询数据并在画面上显示

1.在窗口中添加 DataGridView 对象,用于显示数据

 

右键点击 DataGridView 对象,可以编辑要显示的列,以及表头的名称。

列属性:

DataPropertyName : 数据源中对应字段的名称,根据对应的字段来显示值

HeaderText : 表头显示的文字

DataGridView属性

AllowUserToAddRows :DataGridView默认底部有一行空数据,将改属性修改为False,可以隐藏空白行

 

  AutoSizeColumnsMode:控制列的宽度,将该属性ScrollBars修改为 Fill , 能让列的宽度自适应,充满整个画面

 ScrollBars : 控制滚动条的状态,可隐藏滚动条,或只显示水平或垂直的滚动条

2.生成数据查询SQL,并将查询结果绑定到 DataGridView 上,在画面进行显示

        private void button2_Click(object sender, EventArgs e)
        {
            var dataCnt = numericUpDown1.Value;
            dataCnt = dataCnt > 0 ? dataCnt : 5;

            string sql = "Select Top " + dataCnt + " UserId,RedId,NickName,[Desc],Location  From UserInfo ";
            var ds = Query(sql);
            if (ds.Tables?.Count > 0)
            {
                var dt = ds.Tables[0];

                //直接绑定DataTable
                dataGridView1.DataSource = dt;

                ////绑定对象列表
                //List<UserInfo> userList = new List<UserInfo>();
                //if (dt.Rows?.Count > 0)
                //{
                //    foreach (DataRow row in dt.Rows)
                //    {
                //        UserInfo user = new UserInfo
                //        {
                //            UserId = row["UserId"] + "",
                //            RedId = row["RedId"] + "",
                //            NickName = row["NickName"] + "",
                //            Desc = row["Desc"] + "",
                //            Location = row["Location"] + "",
                //        };

                //        userList.Add(user);
                //    }
                //}

                //dataGridView1.DataSource = userList;
            }
        }


        public DataSet Query(string sqlStr)
        {
            DataSet ds = new DataSet();
            try
            {
                if (conn.State == ConnectionState.Closed)
                {
                    conn.Open();
                }

                SqlDataAdapter command = new SqlDataAdapter(sqlStr, conn);
                command.Fill(ds);
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }

            return ds;
        }
View Code

注:DataGridView 对象绑定的数据源,DataTable 以及 对象List 都是可以的,显示的效果是一样的

 

标签:数据库,ds,DataGridView,自学,row,连接,conn,WinForm
From: https://www.cnblogs.com/SuperJason/p/17201062.html

相关文章

  • (数据库系统概论|王珊)第十一章并发控制-第二、三、四节:封锁、封锁协议活锁和死锁
    pdf下载:密码7281专栏目录首页:【专栏必读】(考研复试)数据库系统概论第五版(王珊)专栏学习笔记目录导航及课后习题答案详解目录一:封锁(1)概念(2)类型(3)控制方式二:封锁协议(1)概念(2......
  • asp.net core 3.1 模拟数据库,假数据步骤
         1.Model usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Threading.Tasks;namespaceWebgentle.BookStore.......
  • 通过jmeter向数据库中插入数据
    1.思路是通过jmeter中的JDBCRequest,向数据库中插入数据,一般来说数据还是通过接口来插入最好,但是如果要对系统进行压测的情况下我们需要大量数据,如果通过接口来插入太慢,所......
  • PG技术大讲堂 - Part 10:PostgreSQL数据库管理
     PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同......
  • application.yml数据库配置
    1.在pom.xml数据库sdk版本设置2.application.yml中进行数据库连接信息配置spring:datasource:url:jdbc:mysql://localhost:3306/test1?characterEncoding=ut......
  • Winform 几种计时器的区别
    1.System.Windows.Forms.Timer:实现机制:使用消息循环机制实现,即通过向消息队列中添加WM_TIMER消息实现定时器的触发。精度:精度一般较低,定时器的最小间隔为15毫秒,不够......
  • Django当中的数据库查询优化
    了解Django框架中进行数据查询优化,需要了解几点:1.查询集是惰性的,这意味着在你对查询集执行某些操作(例如对其进行迭代)之前,不会发出相应的数据库请求;2.始终通过指定要返回......
  • 【WinForm】 自学笔记一:项目创建以及基本操作
    这两年C#客户端开发比较火,有很多WinForm以及WPF的开发需求。为了跟上时代发展的步伐,开始学习相关的知识。笔记内容以个人实际学习情况为主,记录基本情况,可能不够详细......
  • mysql 数据库小工具: 小写转大写
    SELECTconcat( 'renametable',TABLE_NAME,'to',UCASE(TABLE_NAME),';')AS'修改脚本sql'FROMinformation_schema.TABLEStWHERETABLE_SCHEMA='newal......
  • day88 - 数据库函数设计-插入100w条数据
    数据库插入100w条数据CREATETABLE`app_user`(`id`BIGINT(20)UNSIGNEDNOTNULLAUTO_INCREMENT,`name`VARCHAR(50)DEFAULT''COMMENT'用户昵称',`email`V......