DataGridView.DataSource=ArrayList 绑定示例
用DataReader读取数据记录并填充到ArrayList,然后将DataGridView的DataSource绑定到ArrayList,就可以显示网格表数据了。
代码如下:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Collections;
namespace snippetWinForm
{
public partial class frmSnippet : Form
{
public frmSnippet()
{
InitializeComponent();
}
//Variable declaration
string connectionString = "Data Source=.\\sqlexpress; Initial Catalog=Northwind; Integrated security=true;";
string selectString = "select productname, quantityPerUnit, unitPrice, unitsInStock, UnitsOnOrder from products";
ArrayList al = new ArrayList();
/// <summary>
/// 加载数据,并填充到ArrayList对象
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnLoad_Click(object sender, EventArgs e)
{
using (SqlConnection cn = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand(selectString, cn);
cn.Open();
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
if (dr.HasRows )
{
foreach (var item in dr)
{
al.Add(item);
}
}
cn.Close();
}
MessageBox.Show("Data Load finished, you can bind the data now!", "Data Load");
}
private void btnBind_Click(object sender, EventArgs e)
{
dgvProducts.DataSource = al;
}
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Collections;
namespace snippetWinForm
{
public partial class frmSnippet : Form
{
public frmSnippet()
{
InitializeComponent();
}
//Variable declaration
string connectionString = "Data Source=.\\sqlexpress; Initial Catalog=Northwind; Integrated security=true;";
string selectString = "select productname, quantityPerUnit, unitPrice, unitsInStock, UnitsOnOrder from products";
ArrayList al = new ArrayList();
/// <summary>
/// 加载数据,并填充到ArrayList对象
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnLoad_Click(object sender, EventArgs e)
{
using (SqlConnection cn = new SqlConnection(connectionString))
{
SqlCommand cmd = new SqlCommand(selectString, cn);
cn.Open();
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
if (dr.HasRows )
{
foreach (var item in dr)
{
al.Add(item);
}
}
cn.Close();
}
MessageBox.Show("Data Load finished, you can bind the data now!", "Data Load");
}
private void btnBind_Click(object sender, EventArgs e)
{
dgvProducts.DataSource = al;
}
}
}