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;
/*---------------------------------------------
* 标题:LINQ to DataSet 基本用法;
* 作者:靳志远(jack15850798154)
* 时间:2010-03-19
* 地点:江苏南京
* 说明 :通过 LINQ来实现对数据库的排序,获取数据前几条数据 等基本操作。
*----------------------------------------------
*/
namespace LinqOperDataSet
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
string strcon = "Data Source=(local);Database=master; uid=sa;pwd=sql;";
SqlConnection sqlcon;
SqlCommand sqlcmd;
SqlDataAdapter adapter;
DataSet ds;
//Linq通过Datable来进行数据源的绑定同时进行升序还是降序排列;
private void button1_Click(object sender, EventArgs e)
{
sqlcon = new SqlConnection(strcon);
sqlcmd = new SqlCommand("select * from a", sqlcon);
adapter = new SqlDataAdapter(sqlcmd);
ds = new DataSet();
adapter.Fill(ds, "a");
var query = from aaa in ds.Tables["a"].AsEnumerable()
orderby aaa.Field<int>("id") ascending//升序为ascending;
//orderby aaa.Field<int>("id") descending //为降序;
select aaa;
DataTable mydatatable = query.CopyToDataTable<DataRow>();
dataGridView1.DataSource = mydatatable;
}
//LINQ绑定数据源。
private void Form1_Load(object sender, EventArgs e)
{
sqlcon = new SqlConnection(strcon);
sqlcmd = new SqlCommand("select * from a", sqlcon);
adapter = new SqlDataAdapter(sqlcmd);
ds = new DataSet();
adapter.Fill(ds, "a");
var query = from aaa in ds.Tables["a"].AsEnumerable()
select aaa;
DataTable mydatatable = query.CopyToDataTable<DataRow>();
dataGridView1.DataSource = mydatatable;
}
//LInq获取前五条数据;
private void button2_Click(object sender, EventArgs e)
{
sqlcon = new SqlConnection(strcon);
sqlcmd = new SqlCommand("select * from a", sqlcon);
adapter = new SqlDataAdapter(sqlcmd);
ds = new DataSet();
adapter.Fill(ds, "a");
var query = from aaa in ds.Tables["a"].AsEnumerable()
orderby aaa.Field<int>("id") ascending//升序为ascending;
//orderby aaa.Field<int>("id") descending //为降序;
select aaa;
var result = query.Take(5);
DataTable mydatatable = result.CopyToDataTable<DataRow>();
dataGridView1.DataSource = mydatatable;
}
//刷新页面。
private void button4_Click(object sender, EventArgs e)
{
Form1_Load(sender, e);
}
//LINQ 数据的汇总;
private void button3_Click(object sender, EventArgs e)
{
sqlcon = new SqlConnection(strcon);
adapter = new SqlDataAdapter("select * from a", sqlcon);
DataSet myds = new DataSet();
adapter.Fill(myds,"a");
var query = from aaa in myds.Tables["a"].AsEnumerable() //a为表名;
select aaa;
int intsum = query.Sum(aaa=>aaa.Field<int>("lever")); //lever为字段名;
//新建立一个DataTable;
DataTable myDTable = new DataTable();
myDTable.Columns.Add("水平汇总");
DataRow mydrow = myDTable.NewRow();
mydrow["水平汇总"] = intsum;
myDTable.Rows.Add(mydrow);
dataGridView1.DataSource = myDTable;
dataGridView1.Columns[0].Width = 120;
}
}
}