c#怎样读取DataTable中的数据

c#怎样读取DataTable中的数据,第1张

按照DataTable中的行列数循环读取就行了,如

for(int i=0;i<DataTable1RowsCount;i++)

{

//获取数据

string name=DataTable1Rows[i][0]ToString();

}

如果你只是要修改DataTable里的DataRow的话没有必要找到它的行号,直接在Select后得到的DataRow上修改就行了,它的修改会直接反映到DataTable上(其实就是直接修改了DataTable上的DataRow,这和数据库不一样不要弄混了),代码如下

private void button1_Click(object sender, EventArgs e)

{

DataTable dataTable = new DataTable();

dataTableColumnsAdd("ID");

dataTableColumnsAdd("Name");

for (int i = 1; i < 5; i++)

{

dataTableRowsAdd(new object[] { i, i + 1000 });

}

DataRow[] dataRows = dataTableSelect("id > 2");

for (int i = 0; i < dataRowsLength; i++)

{

dataRows[i]ItemArray = new object[] { i + 100, i + 5000 };

}

}

如何从一个DataTable中复制数据行到另一个DataTable中

DataTable dt = ""; //这里是填充DataTable数据

DataTable dtNew = dtCopy(); //复制dt表数据结构

dtNewClear() //清楚数据

for (int i = 0; i < dtRowsCount; i++)

{

if (条件语句)

{

dtNewRowsAdd(dtRows[i]ItemArray); //添加数据行

}

}

===前提:我们已经有一个DataTable的数据表 现在需要的只是其中的一行数据===

比如说下面这段代码在一个方法里 返回的就是一个DataTable!

sqlCon =new SqlConnection(strCon);

sqlCom =new SqlCommand();

sqlComConnection = sqlCon;

sqlComCommandText ="select_v";

sqlComCommandType = CommandTypeStoredProcedure;

sqlConOpen();

sdr = sqlComExecuteReader();

dt =new DataTable();

dtLoad(sdr);

假如返回的DataTable就是 dt ,

方法一:直接复制一个DataTable,然后清空数据(Column结构还保留),最后再用ImportRow()方法从dt中加入需要的Row;

DataTable dt2 = new DataTable();

dt2 = dtCopy();

dt2RowsClear();

dt2ImportRow(dtRows[0]);//这是加入的是第一行

方法二:

首先新的DataTable必须加入对应的列名(Column)

一个空的没有结构的DataTable是不允许直接向里面加入一行的!

for (int i =0; i < dtColumnsCount; i++)

{

dt2ColumnsAdd(dtColumns[i]ColumnName);//有重载的方法,可以加入列数据的类型

}

然后就可以直接加入Row了!

//1

DataRow drq = dt2NewRow();

drqItemArray = dtRows[0]ItemArray;//这是加入的是第一行

dt2RowsAdd(drq);

//2

dt2ImportRow(dtRows[0]);//这是加入的是第一行

最后可以将新的DataTable放入DataSet中了:

ds = new DataSet();

dsTablesAdd(dt2);

过滤DataTable的Rows的重复行 简单方法

DataView view = tableDefaultView;

DataTable tagetTable= viewToTable(true, "column1", "column2", );

源程序来自网络上的资源,我记录下来用于以后忘记之用。对大家也许有用

//表dataTableSource获取数据

string ConnectionString = "Provider=MicrosoftJetOLEDB40;Persist Security Info = False;" +

"Data Source = D:\\vb60\\mdb\\NorthWindmdb";

OleDbConnection Conn = new OleDbConnection(ConnectionString);

ConnOpen();

OleDbDataAdapter Ada = new OleDbDataAdapter("Select From Orders",Conn);

DataTable dataTableSource = new DataTable();

AdaFill(dataTableSource);

dataGrid1DataSource = dataTableSource;

//创建新表dataTableDest

DataTable dataTableDest = new DataTable();

//将表dataTableSource的结构复制到新表dataTableDest中

dataTableDest = dataTableSourceClone();

//然后再复制数据到新表中

foreach(DataRow dr in dataTableSourceRows)

{

//使用ImportRow()方法复制数据。若用dataTableDestRowsAdd(dr)将会出错:SystemArgumentException: 该行已经属于另一个表。

dataTableDestImportRow(dr);

}

dataGrid2DataSource = dataTableDest;

ConnClose();

方法1:在dataTable里控制

int count = datatableRowsCount;

int rows = count >= 20 20 : count;//防止数据不够20条时出错

for(int i=10;i<rows;i++)

{//这里取得所要的数据

}

方法2:在SQL语句里控制

例如:select top 10 from table1 where id not int (select top 10 id from table1 order by id) order by id

这样取得第10-20条数据。

以上就是关于c#怎样读取DataTable中的数据全部的内容,包括:c#怎样读取DataTable中的数据、datatable的select()结果,怎么获取行号啊、如何从一个DataTable中复制数据行到另一个DataTable中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9515172.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-29
下一篇2023-04-29

发表评论

登录后才能评论

评论列表(0条)

    保存