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 _01SqlDataAdapterDemo
{
public partial class MainFrm : Form
{
public MainFrm()
{
InitializeComponent();
}
private void MainFrm_Load(object sender, EventArgs e)
{
//把UserInfo表中数据加载到 窗体的DataGridView
string connStr = ConfigurationManager.ConnectionStrings["sql"].ConnectionString;
using (SqlConnection conn = new SqlConnection(connStr))
{
string strSql = "select UserId, UserName, UserAge, DelFlag, CreateDate, UserPwd, LastErrorDateTime, ErrorTimes from userinfo ";
//创建一个 适配器类。
using (SqlDataAdapter adapter = new SqlDataAdapter(strSql,conn))
{
//adapter: 一个连接, cmd.CommandText(Sql)
//fill:填充。
DataTable dt =new DataTable();
//把数据库中的数据填充到内存表Dt中。
//填充之前不需要打开数据库连接,Adapter会自动打开连接,并执行sql。
//Fill方法内部:
//-------SqlDataAdapter(strSql,conn)初始化后:
//1、先判断SqlConnection是否初始化,如果没有打开连接,那么打开连接。
//2、初始化一个Select:sql SqlCommand对象。
//----------
//3、通过cmd对象执行以下,然后返回一个SqlDataReader对象。
//4、读取数据库中的数据,然后填充到DataTable上去
adapter.Fill(dt);
//把内存表显示到DataGridView上去。
//this.dgvUserInfo.DataSource = dt;
//dt.Rows[0][1]
//dt.Rows[0][1];
List<UserInfo> userList =new List<UserInfo>();
foreach (DataRow dataRow in dt.Rows)
{
Console.WriteLine(dataRow["UserId"] +" "+dataRow[1]);
//把每一行数据封装成 UesrInfo对象。
userList.Add(new UserInfo()
{
Id=int.Parse(dataRow["UserId"].ToString()),
UserName = dataRow["UserName"].ToString(),
UserAge =int.Parse(dataRow["UserAge"].ToString())
});
}
//把dt的数据转换成List<UserInfo>
this.dgvUserInfo.DataSource = userList;
}
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _01SqlDataAdapterDemo
{
public class UserInfo
{
public int Id { get; set; }
public string UserName { get; set; }
public int UserAge { get; set; }
}
}