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; } } }
}
}

3_05_MSSQL课程_Ado.Net_SQLDataAdapter的更多相关文章

  1. 3_05_MSSQL课程_Ado.Net_DataSet数据集

    //创建一个内存的数据集 DataSet ds=new DataSet("LJK"); //创建一张内存表 DataTable dt01=new DataTable("d ...

  2. 3_08_MSSQL课程_Ado.Net_子查询

    子查询 1.把一个查询结果作为一个表来使用,就是子查询. 2.把一个查询结果作为一个 表达式进行使用就是子查询. (分页Sql)

  3. 3_07_MSSQL课程_Ado.Net_委托、事件

    委托和事件的区别? (1)委托是一个类. 事件是一个委托类型的实列. (2)委托可以在定义委托实列的类的外部触发执行.(不安全) 事件只能能在定义它的类的内部触发执行.(安全),类外部只能注册事件的响 ...

  4. 3_06_MSSQL课程_Ado.Net_接口、委托、事件、观察者模式

    1.接口——实现接口 2.委托.事件(定义事件.注册事件.触发事件) 3.接口和事件的区别,怎么分情况用? 4.观察者模式作为设计模式的一种,也称发布订阅模式. 应对类型的变化和个数的变化. 中介设计 ...

  5. 3_04_MSSQL课程_Ado.Net_.ExcuteReader()(SQLDataReader)

    ExcuteNonQuery(); 返回影响的行数 ExcuteSacalar();返回第一行第一列 ExcuteReader(): Reader,指针,指向表的表头.只是指向,数据仍在数据库中. S ...

  6. 3_03_MSSQL课程_Ado.Net_数据导入

    数据库数据导出和导入 思路: --思路: 1.找到文件 2.读取文件 3.第一行 忽略 4.insert using System; using System.Collections.Generic; ...

  7. 3_03_MSSQL课程_Ado.Net_登录复习和ExcuteScalar

    SQL注入 ->登陆窗体破解 ->配置文件 ->首先在 app.Config文件中添加 节点,如下: <connectionStrings> <add name=& ...

  8. 3_02_MSSQL课程_Ado.Net_连接池_连接字符串

    连接池技术:是一种对象池技术. 连接对象频繁的开启和关闭操作. innerConnection  先从池子里面拿,如果没有创建新的!!连接池有大小,最大/最小.  提高了连接对象的重用. Asp.ne ...

  9. 3_01_MSSQL课程_Ado.Net_连接数据库

    1. Ado.Net 是一组微软的c#操作数据库的类库. 2.开发人员将界面上的数据(用户的操作和输入的数据)存储到数据库当中.. 3.数据库访问的驱动.即:应用程序和数据库的桥梁. 4.驱动层. S ...

随机推荐

  1. C语言程序的错误和警告

    一段C语言代码,在编译.链接和运行的各个阶段都可能会出现问题.编译器只能检查编译和链接阶段出现的问题,而可执行程序已经脱离了编译器,运行阶段出现问题编译器是无能为力的. 如果我们编写的代码正确,运行时 ...

  2. C++ string类的使用

    C++ string的使用 在了解如何使用string类之前,我们先来看看C语言中使用字符串有多麻烦: 调用头文件:cstring 定义一个C字符串: char str1[51]="Hell ...

  3. c# 异常:值不能为 null。 参数名: source

    异常详细信息: System.ArgumentNullException: 值不能为 null.参数名: source 其实问题那就出在 Select() 方法,在 Select 上按 F12 查看定 ...

  4. 前端框架vue学习笔记:环境搭建

    兼容性 不兼容IE8以下 Vue Devtools 能够更好的对界面进行审查和调试 环境搭建 1.nodejs(新版本的集成了npm)[npm是node包管理 node package manager ...

  5. ajax中 踩过的坑

    直接上图:  以前一直对  dataType  这个参数  模棱两可,只知道一般写的是 json 正解:这个dateType  指的是 ajax  返回数据的格式.比如:你想返回一个“success& ...

  6. 【PAT甲级】1071 Speech Patterns (25 分)(getline(cin,x))

    题意: 输入一行字符串,输出出现过次数最多的由字母和数字组成的字符串以及它出现的次数(对大小写不敏感,输出全部输出小写). AAAAAccepted code: #define HAVE_STRUCT ...

  7. numpy.bincount正确理解

    今天看了个方法,numpy.bincount首先官网文档: numpy.bincount numpy.bincount(x, weights=None, minlength=0) Count numb ...

  8. vb.net从数据库中取数据

    1.设置从Model中的Sub Main 启动 2.程序结构 3.Model1 Imports System.Windows.Forms.Application Module Module1 Sub ...

  9. Java后台技术(TDDL)

    从PC客户端开发转项目经理已经有一段时间了,感觉还不错,平安这边的项目经理还需要对外,所以部门其他项目经理经常需要出差去见客户,我专门对内,部门所有的开发和测试每天做什么.接下来做什么我都必须了解,部 ...

  10. 服务器(1)——IIS(1)——Windows7中IIS简单安装与配置(详细图解)

    最近工作需要IIS,自己的电脑又是Windows7系统,找了下安装的方法,已经安装成功. 一.首先是安装IIS.打开控制面板,找到“程序与功能”,点进去 二.点击左侧“打开或关闭Windows功能” ...