如何获取dataset中的数据并把获得的数据放在一个数组里面

如何获取dataset中的数据并把获得的数据放在一个数组里面,第1张

const columnName = "你的列名";

DataSet ds; //你的ds

DataTable dt = dsTables[0];

String[] resultArray = new String[dtRowsCount];

int i = 0;

foreach(DataRow r in dtRows)

{

    resultArray[i] = ConvertToString(r[columnName]);

    i++;

}

//resultArray里便是你要的结果,这里仅以字符串数组作为示例

Dim i As Integer = 0

For i = 0 To dsTables(0)RowsCount - 1

MsgBox(dsTables(0)Rows(i)(0)ToString)

Next

我拿vbnet写的 你改成c#的就可以了!~

1;引用命名空间

如 using SystemDataSqlClient;

以(SqlServer为例)

2建立一个连接

string Cnstr="server=(local);database=pubs;uid=sa;pwd";

SqlConnection Cn=new SqlConnection(Cnstr);

3建立一SqlDataAdpater

SqlDataAdapter SqlDa=new SqlDataAdapter("select count() as c from book",Cn);

4建立一个数据

DataSet ds=new DataSet();

5填充数据集

SqlDaFill(ds,"book");

Ok现在已经把数据表中的jobs放在ds数据集中的jobs表中了

你可以对

int a=intParse(dsTabels["c"]ToString());

解决如下:

private void GetRowsByFilter()

{

DataTable table = DataSet1Tables["TABLE1"];

string expression;

expression = "Name ='"+sName+"'";

DataRow[] foundRows;

//使用选择方法来找到匹配的所有行。

foundRows = tableSelect(expression);

//过滤行,找到所要的行。

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

{

string str1 = ConsoleWriteLine(foundRows[i]["Name"])ToString();

string str2 = ConsoleWriteLine(foundRows[i]["Age"])ToString();

string str3 = ConsoleWriteLine(foundRows[i]["Sex"])ToString();

string str4 = ConsoleWriteLine(foundRows[i]["ID"])ToString();

label5Text = stringFormat("Name:({0}) Age:({1})Sex:({2}) ID:({3})", str1, str2, str3,str4);

}

}

数据模型

因为DataSet可以看做是内存中的数据库,也因此可以说DataSet是数据表的集合,它可以包含任意多个数据表(DataTable),而且每一 DataSet中的数据表(DataTable)对应一个数据源中的数据表(Table)或是数据视图(View)。数据表实质是由行(DataRow)和 列(DataColumn)组成的集合为了保护内存中数据记录的正确性,避免并发访问时的读写冲突,DataSet对象中的DataTable负责维护每一条记录,分别保存记录的初始状态和当前状态。从这里可以看出DataSet是与只能存放单张数据表的Recordset是截然不同的概念。

DataSet对象结构还是非常复杂的,在DataSet对象的下一层中是DataTableCollection对象、 DataRelationCollection对象和ExtendedProperties对象。上文已经说过,每一个DataSet对象是由若干个 DataTable对象组成。DataTableCollection就是管理DataSet中的所有DataTable对象。表示DataSet中两个 DataTable对象之间的父/子关系是DataRelation对象。它使一个DataTable 中的行与另一个DataTable中的行相关联。这种关联类似于关系数据库中数据表之间的主键列和外键列之间的关联。 DataRelationCollection对象就是管理DataSet中所有DataTable之间的DataRelation关系的。在 DataSet中DataSet、DataTable和DataColumn都具有ExtendedProperties属性。 ExtendedProperties其实是一个属性集(PropertyCollection),用以存放各种自定义数据,如生成数据集的SELECT 语句等。DataRow表示DataType中实际的数据,我们通过DataRow将数据添加到用DataColumn定义好的DataTable。

2三大特性

通过上面几节中的介绍和本节中的分析,我们可以总结出DataSet对象的三大特性:

(1) 独立性。DataSet独立于各种数据源。

(2) 离线(断开)和连接。

(3) DataSet对象是一个可以用XML形式表示的数据视图,是一种数据关系视图。

3使用方法

在实际应用中,DataSet使用方法一般有三种:

(1) 把数据库中的数据通过DataAdapter对象填充DataSet。

(2) 通过DataAdapter对象 *** 作DataSet实现更新数据库。

(3) 把XML数据流或文本加载到DataSet。

我通常用的就有两种

一种是填充

SqlDataAdapter adapder = new SqlDataAdapter("sqlcmd", con);

adapderFill(dataset1, "tableName");

另一种采用SqlDataReader;这种性能相对比较好

SqlDataReader sdr = mycomExecuteReader();

DataTable dt = new DataTable();

dtLoad(sdr);

首先调试跟踪 datasetTables["task"]Rows 是否有行,即是否查出了数据。如果datasetTables["task"]RowsCount > 0, 那么问题应该出现在 DataTable 的主键问题上,虽说你的数据库中设置了 taskId 为主键,但是查出来的 DataSet中的Table默认是没有主键的,因此使用Find方法是找不到数据的。

解决办法:在使用 Find 方法之前,为DataTable设置主键,例如:

DataTable table = datasetTables["task"];

tablePrimaryKey = new DataColumn[] { tableColumns["taskid"] };

DataRow row3 = tableRowsFind(1);

以上就是关于如何获取dataset中的数据并把获得的数据放在一个数组里面全部的内容,包括:如何获取dataset中的数据并把获得的数据放在一个数组里面、dataset里面有一个表,如何读出指定列的所有数据、C#中如何获取book表中所有的记录的数目等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9568687.html

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

发表评论

登录后才能评论

评论列表(0条)

保存