1. 1.DataSetDataTableDataGridView提供数据源
  1. String strConn = "Data Source=.;Initial Catalog=His;User ID=sa;Password=*****";
  2. SqlConnection conn = new SqlConnection(strConn);
  3. String sql= "select * from EMPLOYEE ";
  4. conn.Open();
    SqlCommand cmd = new SqlCommand(sqlId, conn);
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    DataSet ds = new DataSet();
  5. da.Fill(ds, "EMPLOYEE");
  6. dataGridView1.DataSource = ds;
    this.dataGridView1.AutoGenerateColumns = false;//是否自动生成列
    dataGridView1.DataMember = "EMPLOYEE";
    conn.Close();

2.创建DataGridViewRow 对象Add添加行

  1. String sql_conn= "Data Source=.;Initial Catalog=His;User ID=sa;Password=*****";
    System.Data.DataTable table =return_table(sql_conn);
    foreach (System.Data.DataRow date in table.Rows)
    {
    DataGridViewRow newRow = new DataGridViewRow();
    newRow.CreateCells(this.dataGridView1);
    newRow.Cells[0].Value = date[0].ToString();
    newRow.Cells[1].Value = date[1].ToString();
    newRow.Cells[2].Value = date[2].ToString();
    newRow.Cells[3].Value = date[3].ToString();
    newRow.Cells[4].Value = date[4].ToString();
    dataGridView1.Rows.Add(newRow);
  1.  
  1. }
  1. public System.Data.DataTable return_table(string sql_conn)
  2. {
  3. SqlConnection conn = new SqlConnection(sql_conn);
  4. SqlDataReader reader = null;
  5. conn.Open();
  6. SqlCommand command = new SqlCommand("select
  7. RegID,Name,Area,RoomNO,BedNO from EMPLOYEE", conn);
  8. reader = command.ExecuteReader();
  9. return ConvertToDataTable(reader);
  10. }
  1. public DataTable ConvertToDataTable(SqlDataReader dataReader)//SqlDataReader转换为DataTable
  2. {
  3. DataTable dt = new DataTable();
  4. DataTable schemaTable = dataReader.GetSchemaTable();
  5. try
  6. {
  7. //动态构建表,添加列
  8. foreach (DataRow dr in schemaTable.Rows)
  9. {
  10. DataColumn dc = new DataColumn();
  11. //设置列的数据类型
  12. dc.DataType = dr[].GetType();
  13. //设置列的名称
  14. dc.ColumnName = dr[].ToString();
  15. //将该列添加进构造的表中
  16. dt.Columns.Add(dc);
  17. }
  18. //读取数据添加进表中
  19. while (dataReader.Read())
  20. {
  21. DataRow row = dt.NewRow();
  22. //填充一行数据
  23. for (int i = ; i < schemaTable.Rows.Count; i++)
  24. {
  25. row[i] = dataReader[i].ToString();
  26.  
  27. }
  28. dt.Rows.Add(row);
  29. row = null;
  30. }
  31. dataReader.Close();
  32. schemaTable = null;
  33. return dt;
  34. }
  35. catch (Exception ex)
  36. {
  37.  
  38. //抛出异常
  39. throw new Exception(ex.Message);
  40. }
  41.  
  42. }
  1.  

C# winform DataGridView 绑定数据的的几种方法的更多相关文章

  1. winform datagridview 绑定泛型集合变得不支持排序的解决方案

    原文:winform datagridview 绑定泛型集合变得不支持排序的解决方案 案例: 环境:Winform程序 控件:Datagridview 现象:Datagridview控件绑定到List ...

  2. WinForm DataGridView 绑定泛型List(List<T>)/ArrayList不显示的原因和解决

    背景:无意间遇到了一个不大不小的问题,希望对一些遇到的人有所帮助! 一.问题 WinForm DataGridView 绑定泛型List (List<T>)/ArrayList不显示,UI ...

  3. [转]WinForm DataGridView 绑定泛型List(List<T>)/ArrayList不显示的原因和解决

    背景:无意间遇到了一个不大不小的问题,希望对一些遇到的人有所帮助! 一.问题 WinForm DataGridView 绑定泛型List (List<T>)/ArrayList不显示,UI ...

  4. Android数据存储的五种方法汇总

    本文介绍Android中的5种数据存储方式. 数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的5种方式,分别是: 1 使用SharedPreferences存储数据 2 ...

  5. 从数据表中随机抽取n条数据有哪几种方法(join实现可以先查数据然后再拼接)

    从数据表中随机抽取n条数据有哪几种方法(join实现可以先查数据然后再拼接) 一.总结 一句话总结:最好的是这个:"SELECT * FROM table WHERE id >= (( ...

  6. Android之数据存储的五种方法

    1.Android数据存储的五种方法 (1)SharedPreferences数据存储 详情介绍:http://www.cnblogs.com/zhangmiao14/p/6201900.html 优 ...

  7. IOS开发中数据持久化的几种方法--NSUserDefaults

    IOS开发中数据持久化的几种方法--NSUserDefaults IOS 开发中,经常会遇到需要把一些数据保存在本地的情况,那么这个时候我们有以下几种可以选择的方案: 一.使用NSUserDefaul ...

  8. oracle rename数据文件的两种方法

    oracle rename数据文件的两种方法 2012-12-11 20:44 10925人阅读 评论(0) 收藏 举报  分类: oracle(98)  版权声明:本文为博主原创文章,未经博主允许不 ...

  9. 三、用Delphi10.3 创建一条JSON数据的第三种方法,非常简洁的写法

    一.用Delphi10.3构造一个JSON数据的第三种方法,并格式化输出,代码如下: uses // System.JSON, System.JSON.Types, System.JSON.Write ...

随机推荐

  1. 20199326《Linux内核原理与分析》第十一周作业

    Shellsock攻击实验 实验背景 2014年9月24日,Bash中发现了一个严重漏洞shellshock,该漏洞可用于许多系统,并且既可以远程也可以在本地触发. Shellshock,又称Bash ...

  2. docker-数据管理(3)

    Docker 容器中管理数据主要有两种方式: 数据卷(Data volumes) 数据卷容器(Data volumes containers 数据卷是一个可供一个或者多个容器使用的特殊目录,它绕过UF ...

  3. Win10 及 Google 浏览器显示界面异常

    win10 和 google 界面显示异常 win10 个别 ui 组件花屏,google 界面直接黑屏 解决方式 更新集成显卡或者重装显卡驱动,最好使用 驱动人生 !!!

  4. 浅析Java三大特性封装、继承、多态,及作业分析

    前言 本次博客衔接上次博客,作为这一阶段Java学习的分析.上一篇博客着重介绍了Java的OO编程思维,面向对象与面向过程的区别.本篇博客重心在Java的三大技术特性,附带作业分析. Java三大特性 ...

  5. Week-1 linux命令行重点整理

    ①仅对当前用户: ~/.bashrc ②对所有用户有效: /etc/bashrc screen命令:创建新screen会话screen –S [SESSION]加入screen会话screen –x ...

  6. 有关for循环的一些东西

    有的时候,不知道是因为学的有点浅显,还是脑袋有点懵,简单的循环语句都有点被绕糊涂了. 这种内外循环的,先是外循环一次,内循环全部,接着再外循环第二次,内循环全部,,,,,,,. 所以先是显示 0 4 ...

  7. Linux 下如何产生core文件(core dump设置)

    转自:https://blog.csdn.net/star_xiong/article/details/43529637 今天在Linux下调试C程序时,出现段错误,习惯性的ls下当前目录,发现没有生 ...

  8. CF思维联系– Codeforces-987C - Three displays ( 动态规划)

    ACM思维题训练集合 It is the middle of 2018 and Maria Stepanovna, who lives outside Krasnokamensk (a town in ...

  9. 使用Jexus 容器化您的 Blazor 应用程序

    在本文中,我们将介绍如何将 Blazor 应用程序放入Jexus 容器以进行开发和部署.我们将使用 .NET Core  CLI,因此无论平台如何,使用的命令都将是相同的. Blazor 托管模型 B ...

  10. redis 6.0下redis-cluster-proxy代理尝试

    伴随着Redis6.0的发布,作为最令人怦然心动的特性之一,Redis官方同时推出Redis集群的proxy了:redis-cluster-proxy,https://github.com/Redis ...