3_05_MSSQL课程_Ado.Net_SQLDataAdapter
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的更多相关文章
- 3_05_MSSQL课程_Ado.Net_DataSet数据集
//创建一个内存的数据集 DataSet ds=new DataSet("LJK"); //创建一张内存表 DataTable dt01=new DataTable("d ...
- 3_08_MSSQL课程_Ado.Net_子查询
子查询 1.把一个查询结果作为一个表来使用,就是子查询. 2.把一个查询结果作为一个 表达式进行使用就是子查询. (分页Sql)
- 3_07_MSSQL课程_Ado.Net_委托、事件
委托和事件的区别? (1)委托是一个类. 事件是一个委托类型的实列. (2)委托可以在定义委托实列的类的外部触发执行.(不安全) 事件只能能在定义它的类的内部触发执行.(安全),类外部只能注册事件的响 ...
- 3_06_MSSQL课程_Ado.Net_接口、委托、事件、观察者模式
1.接口——实现接口 2.委托.事件(定义事件.注册事件.触发事件) 3.接口和事件的区别,怎么分情况用? 4.观察者模式作为设计模式的一种,也称发布订阅模式. 应对类型的变化和个数的变化. 中介设计 ...
- 3_04_MSSQL课程_Ado.Net_.ExcuteReader()(SQLDataReader)
ExcuteNonQuery(); 返回影响的行数 ExcuteSacalar();返回第一行第一列 ExcuteReader(): Reader,指针,指向表的表头.只是指向,数据仍在数据库中. S ...
- 3_03_MSSQL课程_Ado.Net_数据导入
数据库数据导出和导入 思路: --思路: 1.找到文件 2.读取文件 3.第一行 忽略 4.insert using System; using System.Collections.Generic; ...
- 3_03_MSSQL课程_Ado.Net_登录复习和ExcuteScalar
SQL注入 ->登陆窗体破解 ->配置文件 ->首先在 app.Config文件中添加 节点,如下: <connectionStrings> <add name=& ...
- 3_02_MSSQL课程_Ado.Net_连接池_连接字符串
连接池技术:是一种对象池技术. 连接对象频繁的开启和关闭操作. innerConnection 先从池子里面拿,如果没有创建新的!!连接池有大小,最大/最小. 提高了连接对象的重用. Asp.ne ...
- 3_01_MSSQL课程_Ado.Net_连接数据库
1. Ado.Net 是一组微软的c#操作数据库的类库. 2.开发人员将界面上的数据(用户的操作和输入的数据)存储到数据库当中.. 3.数据库访问的驱动.即:应用程序和数据库的桥梁. 4.驱动层. S ...
随机推荐
- 【Python】字符串(String)
python中单引号和双引号使用完全相同. 使用三引号('''或""")可以指定一个多行字符串. 转义符 '\' 反斜杠可以用来转义,使用r可以让反斜杠不发生转义.. 如 ...
- VS2017编译错误:#error: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll version
VS2017编译错误:#error: Building MFC application with /MD[d] (CRT dll version) requires MFC shared dll ve ...
- JS-内置对象和方法
1.Array数组对象unshift( ) 数组开头增加功能:给数组开头增加一个或多个 参数:一个或多个 返回值:数组的长度 原数组发生改变 shift( ) 数组开头删除一项功能 ...
- maven打包一直报class not found错误
原因是因为gbase的jar包没导入到本地的maven库中 cmd,然后执行如下命令: mvn install:install-file -Dfile=D:/gbase-connector-java- ...
- 获得APP的包名package和activity
方法一: Aapt dumpbadging xxxx.apk(包的路径) 第一个框为包名 第二个框为主Activity名 方法二: 如果你装了Appium 可以这么操作下 进入设置页,选择APK 路 ...
- IIS-反向代理配置&&插件安装
参考:https://www.cnblogs.com/pengcc/p/4329207.html 网络上好多开场的文章就说了好多的原理之类的这里我们直接开始配置.不过也要简单说下win下配置反向代理只 ...
- Codeforces Round #597 (Div. 2)D(最小生成树)
/*每个点自己建立一座发电站相当于向超级源点连一条长度为c[i]的边,连电线即为(k[i]+k[j])*两点间曼哈顿距离,跑最小生成树(prim适用于稠密图,kruscal适用于稀疏图)*/ #def ...
- Java的单例模式(singleton)
为什么需要单例?只因为国家的独生子女政策(当然现在可以生2个) 单例是一个很孤独的物种,因为它的类里面做多只有也仅只有它一个. 常见的是懒汉及饿汉模式, 1.懒汉,为什么这么叫,看看英文,原为lazy ...
- idea中使用Autowired注入时报红,但是运行不报错
在Preferences中如下设置,即可解除报红错误: 将Autowiring for Bean Class的Severity级别设置为Warning
- 01 认识python
python介绍 python的创始⼈为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决⼼ 开发⼀个新的脚本解释程序,作为ABC语 ...