using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Configuration;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; namespace _01SQLAndAdo.Net
{
public partial class SqlData2DataGirdView : Form
{
public SqlData2DataGirdView()
{
InitializeComponent();
} private void SqlData2DataGirdView_Load(object sender, EventArgs e)
{ string connStr = ConfigurationManager.ConnectionStrings["sql"].ConnectionString;
string commandText = @"SELECT TOP 1000 [User_ID]
,[User_Name]
,[User_Gender]
,[User_Age]
,[User_Address]
,[User_Birthday]
,[User_Remark]
,[User_Money]
,[User_GUIDDemo]
,[User_Pwd]
FROM[LJK_SQLServerDB].[dbo].[User_Info]";
using (SqlConnection conn = new SqlConnection(connStr))
{
using (SqlDataAdapter adapter = new SqlDataAdapter(commandText, connStr))
{
//DataSet方式,查询多张表的时候应用
//DataSet dataSet=new DataSet();
//adapter.Fill(dataSet,"demo");
//this.dgvUserInfo.DataSource = dataSet.Tables["demo"]; DataTable dataTable = new DataTable();
//填充之前不需要打开数据库连接,Adaper会自动打开连接,并执行SQL
//Fill方法内部:
//1. 先判断SqlConnection是否初始化,如果没有打开链接,那么打开连接。
//2. 初始化一个Select(commandText) SqlCommand对象
//3. 通过cmd对象执行,然后返回一个SqlReader对象。
//4. 读取数据库中的数据,然后填充到DataTable上去
adapter.Fill(dataTable); //把数据库中的数据 填充到 内存表中
//把内存表显示到DataGirdView上去
// this.dgvUserInfo.DataSource = dataTable; // var o = dataTable.Rows[0][1]; // dataRow["列名"]; //弱类型
//user.UserInfo //强类型,出错概率下降
List<UserInfo> userInfoList = new List<UserInfo>();
foreach (DataRow dataRow in dataTable.Rows)
{
Console.WriteLine(dataRow["User_Id"] + " " + dataRow[]);
Console.WriteLine(dataRow["User_Name"] + " " + dataRow[]);
Console.WriteLine(dataRow["User_Age"] + " " + dataRow[]);
Console.WriteLine(dataRow["User_Pwd"] + " " + dataRow[]);
UserInfo userInfo = new UserInfo();
userInfo.UserId = int.Parse(dataRow["User_ID"].ToString());
userInfo.UserName = dataRow["User_Name"].ToString();
if (!string.IsNullOrEmpty(dataRow["User_Age"].ToString()))
{
userInfo.UserAge = int.Parse(dataRow["User_Age"].ToString());
// userInfo.UserAge = dataRow["User_Age"].ToString();
// userInfo.UserAge = 1;
}
else
{
userInfo.UserAge = ;
} if (!string.IsNullOrEmpty(dataRow["User_Pwd"].ToString()))
{
userInfo.UserPwd = int.Parse(dataRow["User_Pwd"].ToString());
}
else
{
userInfo.UserPwd = ;
} userInfoList.Add(userInfo); //把DataTabel的数据转成List<UserInfo> } this.dgvUserInfo.DataSource = userInfoList; } } }
}
}

最新文章

  1. T-SQL 转义select … like中的特殊字符(百分号)
  2. python命名空间
  3. Mysql高并发优化
  4. noip2008普及组3题题解-rLq
  5. 70 数组的Kmin算法和二叉搜索树的Kmin算法对比
  6. Hibernate二进制或大文件类型数据和Oracle交互
  7. c# winform 隐藏tabcontrol标签
  8. asp.net(C#)写SQL语句技巧
  9. 【转】linux 原子整数操作详解
  10. Lwip lwip_recvfrom函数一个数据包不能分多次读取。
  11. 基于AFNetworking 3.0的取消已发出的网络请求
  12. Memcached内存存储
  13. java虚拟机内存分配
  14. python 标准库 -- requests
  15. Linux系统下rm删除文件后空间没有释放问题解决办法
  16. delphi 调试查看变量值
  17. MySql中三种注释写法
  18. Docker 安装MySQL5.7(三)
  19. 阿里云上安装pip3(Ubuntu)
  20. WPF学习笔记(2):准确定位弹出窗

热门文章

  1. Codeforces Gym 102392F Game on a Tree (SEERC2019 F题) 题解
  2. 每个Java开发人员都应该知道的4个Spring注解
  3. php常用函数归纳
  4. C:作用域
  5. 吴裕雄 PYTHON 神经网络——TENSORFLOW 无监督学习处理MNIST手写数字数据集
  6. 巨头环伺下,青云QingCloud的云计算之路危机重重
  7. dropna fillna
  8. mcast_get_loop函数
  9. 创建jsp文件时报错,&quot;javax.servlet.http.HttpServlet&quot; was not found on the Java)
  10. python 环境迁移之requirements.txt (window环境)