解决如下:
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。
如果你只是要修改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 };
}
}
仔细检查一下你的绑定到repeater的数据源是否是DataSet或DataTable,只有这样你才可以使用DataRowView来获取当前行的值,如我下面的代码是没问题的:
Repeater1DataSource = dsTables[0];
Repeater1DataBind();
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
DataRowView rowView = (DataRowView)eItemDataItem;
string str1 = rowViewRow["Sname"]ToString();
Label lb1 = (Label)eItemFindControl("lb1");
lb1Text = str1;
//if ( eItemItemType == ListItemTypeAlternatingItem || eItemItemType == ListItemTypeItem)
//{
//}
}
good luck !
--天涯孤岸
if (dtRows[0][0] is byte[])
{
byte[] tmp = dtRows[0][0] as byte[];
}
绑定到ComboBox时,需要指定DisplayMember和ValueMember,这两个属性分别对应你的数据集中要显示的字段以及作为返回值的字段。
比如你的数据集是这样的:
FieldA FieldB
AAA 111
BBB 222
绑定数据:Datasource=dsTables[0];
然后设定
ComboboxDisplayMember = "FieldA";
ComboboxValueMember = "FieldB";
这时,你的Combobox中会有两个选项,分别是:AAA、BBB
如果你选中AAA,那么ComboboxSelectValue属性的返回值就是111
如果你选中BBB,那么ComboboxSelectValue属性的返回值就是222
dev gridcontrol怎么获取选中行的某一列的值呢?
有三个问题
1 gridcontrol怎么获取选中行的某一列的值呢
private void GridView1_Click(object sender, EventArgs e)
{
string b =(string)GridView1Columns["ClassName"];
}
会提示无法将gridcolumn转为string
2 我的这个gridcontrol1是与一个数据源bindingsource绑定的。
现在我想向gridview1中插入一行,或是向数据源中插入一行,然后让它刷新显示,该怎么写呢?
3 我看网上写DataRow vCurrenRow = thisgridDatagridView1GetFocusedDataRow();
但是当我写 thisgridData后,后面的提示中却没有gridview1啊
我是C#新手,请大家帮我。
[解决办法]
string b =GridView1rows[3]cell["ClassName"]value;(没vs,拼写可能有问题,意思到了)
[解决办法]
GridView1GetData(GridView1FocusedRowHandle)
获取的是选中的那一行的数据 到那行里面去取,没有绑定的值也取的到
string b =(string)GridView1Columns["ClassName"];这个获取的是那一列,所以出错
第二个往gridview 里面add
第三个直接用gridview1
[解决办法]
引用:
GridView1GetData(GridView1FocusedRowHandle)
获取的是选中的那一行的数据 到那行里面去取,没有绑定的值也取的到
string b =(string)GridView1Columns["ClassName"];这个获取的是那一列,所以出错
第二个往gridview 里面add
第三个直接用gridview1
写错了
是DataRow dr = gridView2GetDataRow(gridView2FocusedRowHandle);
[解决办法]
如果是gridView控件
问题一:
foreach (GridViewRow gvr in gvControlRows)
{
if (gvrRowType == DataControlRowTypeDataRow)
{
string cellValue = gvrCells[0]Text;
}
}
问题二调用:
gvControlDataSource = 新数据源;
gvControlDataBind();
问题三:
你说的应该不是gridview控件,应该是DEV控件里面的gridView,详情请看
[解决办法]
直接给你上码:
1、获取选中行的某列的值:object ojb =GridView1getrowcellvalue(GridView1focusedrowhandle,"列名");
2、看数据源是什么类型,如果是datatable 则:datatable dtnew=(datatabl>
以上就是关于C#如何查找dataset某行数据全部的内容,包括:C#如何查找dataset某行数据、datatable的select()结果,怎么获取行号啊、ASP.NET中使用了一个Repeater,然后使用了DataRowView来获取当前行的值,为什么调试过程中DataRowView为空等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)