DataTable 操作问题
SqlDataAdapter da = new SqlDataAdapter("select * from 表", conn);
DataSet ds = new DataSet();
da.Fill(ds," ");
ds.Tables[0]获取到了数据,现在我想得到数据集里的前100-200行的数据,接下来怎么操作。。
我是菜鸟,请贴代码!!! --------------------编程问答-------------------- --------------------编程问答-------------------- datatable对象.select(sql语句) --------------------编程问答-------------------- datatable对象.select(sql语句) 这个是正确的。。,在这里取你想要的记录。 --------------------编程问答-------------------- datatable对象.select(sql语句)这个可以 --------------------编程问答--------------------
--------------------编程问答-------------------- 这种方式,.select好像不能处理这种情况 --------------------编程问答--------------------
--------------------编程问答--------------------
SqlDataAdapter da = new SqlDataAdapter("select * from 表", conn);
DataSet ds = new DataSet();
da.Fill(ds);
DataTable dt = ds.Tables[0];
List<DataRow> list = new List<DataRow>();
foreach (DataRow dr in dt.Select())
{
list.Add(dr);
}
IEnumerable<DataRow> result= list.Skip(100).Take(100);//获取100至200行的数据.
SqlDataAdapter da = new SqlDataAdapter("select row_number over (order by 某字段) as row_num,* from 表", conn);
DataSet ds = new DataSet();
da.Fill(ds);
DataTable dt = ds.Tables[0];
DataRow[] drr = dt.Select(" ROW_NUM >= 100 AND ROW_NUM <= 200");
DataTable Need_Rows = dt.Clone() ;
for (int i = 0; i < drr.Length; i++)
{
Need_Rows.ImportRow(drr[i]);
}
dataGridView1.DataSource = Need_Rows;
--------------------编程问答--------------------
.select()里面的语句怎么写.... --------------------编程问答--------------------
datatable对象.select(sql语句)这个可以
.select()里面的语句:select top 100 * from tables where id not in (select top 100 id from tables)
--------------------编程问答--------------------
后面就写你查100-200行的sql语句。。 --------------------编程问答--------------------
不是对数据库操作了,也不知道表名,数据是EXCEL里读出来的 --------------------编程问答-------------------- 不是这么写的,只写where语句。你的datatable表里必然有id字段吧。
datatable对象.select("id>=100 and id<=200") --------------------编程问答-------------------- 还有lz你为什么不在一开始取数据时就取出100-200的数据呢
sql:select top 100 * from (select top 200 * from 表名 order by id) aa order by id desc
先取出前200条记录,然后反序排列,然后再取其前100条数据,结果就是原数据的第100-200行数据 --------------------编程问答--------------------
DataTable dt=ds.Tables[0];
dt.select("ID between 100 and 200"); --------------------编程问答-------------------- ("select top 200 * from 表", conn);
--------------------编程问答-------------------- 下面是 将一条SQL 查选出来的记录,填充到DS里的 例子,填充时可以 选择从第几行填,填多少行,返回DataSet
/// <summary>
/// 根据SQL查询返回DataSet对象,如果没有查询到则返回NULL
/// </summary>
/// <param name="sql">查询语句</param>
/// <param name="sRecord">开始记录数</param>
/// <param name="mRecord">最大记录数</param>
/// <param name="strTableName">表名</param>
/// <returns>DataSet</returns>
public DataSet returnDS(string sql, int sRecord, int mRecord, string strTableName)
{
DataSet ds = new DataSet();
try
{
SqlCommand cmd = new SqlCommand(sql, con);
cmd.CommandTimeout = 20;
this.Open();
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
adapter.Fill(ds, sRecord, mRecord, strTableName);
}
catch (Exception e)
{
ds = null;
throw (e);
}
finally
{
this.Close();
}
return ds;
}
如果 后续还想 使用其他行,就不要用这个方法了
用循环来实现即可
--------------------编程问答-------------------- datatable.Select().Skip(100).Take(100) --------------------编程问答-------------------- 你那问题这样可以解决啊
补充:.NET技术 , C#