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. yum源文件

    yum源文件 2017年11月22日 11:59:36 cakincqm 阅读数 1052更多 分类专栏: Linux   版权声明:本文为博主原创文章,遵循CC 4.0 by-sa版权协议,转载请附 ...

  2. 算法刷题--回溯算法与N皇后

    所谓回溯算法,在笔者看来就是一种直接地思想----假设需要很多步操作才能求得最终的解,每一步操作又有很多种选择,那么我们就直接选择其中一种并依次深入下去.直到求得最终的结果,或是遇到明细的错误,回溯到 ...

  3. Selenium元素定位之页面检测技巧

    我们在进行web自动化测试的时候进行XPath或者CSS定位,需要检测页面元素定位是否正确,如果用脚本去检测,那么效率是极低的. 一般网上推选装额外的插件来实现页面元素定位检测 如:firebug. ...

  4. acm数论之旅--欧拉函数的证明

    随笔 - 20  文章 - 0  评论 - 73 ACM数论之旅7---欧拉函数的证明及代码实现(我会证明都是骗人的╮( ̄▽ ̄)╭) https://blog.csdn.net/chen_ze_hua ...

  5. 部署etcd中使用ansible进行变量初始化

    ansible-playbook 要进行默认变量的生产,可以依靠jinja 的模板渲染功能 看几个官方给出的例子 调用setup 中的变量 例如 setup 中的变量层级为 ansible_eth0_ ...

  6. Jmeter_选项_函数助手对话框_CSVRead

    1.之前有写过Jmeter_请求原件之参数化CSV 2.这次是使用函数助手 CSVRead去进行处理 3.作用注册10个账户 4.线程组设置,10个线程进行,因为是注册10个账户,如果线程设置为1,循 ...

  7. JavaScript学习笔记之二

    一 js与json数据格式的转换:序列号与反序列化 JSON.stringify(jsobj, '  ');//将js的obj转换为json对象: JSON.parse()把json对象变成一个Jav ...

  8. 启动ubuntu就直接进入GRUB2.02的命令行界面的问题

    问题:启动ubuntu就直接进入GRUB2.02的命令行界面原因:grub2引导出现问题. 解决方法:图形方法,引导修复 (1)电脑上插入Ubuntu系统启动引导U盘(如果没有引导U盘,就到官网下载一 ...

  9. git 工具常见命令

    1.git是什么 git是分布式版本管理工具,一台电脑既可以是客户端,也可以是服务端.工作过程中可以断开网络. git中的三个概念: 1.版本库:在初始化git版本库之后会生成一个隐藏的文件, .gi ...

  10. 浅谈SQL注入漏洞以及防范策略

    --HeShiwei 2014-5-15 什么是SQL注入 SQL注入,指的是用户通过向登录框输入恶意字符,利用代码的字符串拼接漏洞进行网站注入攻击,最终导致整个网站用户表信息泄露的攻击方式.黑客就是 ...