Vincent Maverick Durano
Прежде чем делать то, что вы пытаетесь сделать, вы должны знать разницу между ними. Набор данных содержит таблицы данных и не содержит фактических данных. Datatable содержит данные, которые в основном содержат потоки данных.
Сказав это, и чтобы ответить на ваш вопрос, вы не можете скрыть DataRow в DataTable или DataSet. Однако вы можете добавить потоки данных в свой DataTable. Вот небольшой пример, как добавить datarow используется для нового объекта DataTable:
using System;
using System.Data;
namespace WebFormDemo
{
public partial class DataTable : System.Web.UI.Page
{
private DataTable CreateTable() {
//this is just for demo.
//You may have to fill your datatable with data from database in real scenario
DataTable dt = new DataTable();
DataRow dr = null;
//define the columns
dt.Columns.Add(new DataColumn("ID", typeof(int)));
dt.Columns.Add(new DataColumn("FirstName", typeof(string)));
dt.Columns.Add(new DataColumn("LastName", typeof(string)));
//create new row
dr = dt.NewRow();
//add values to each rows
dr["ID"] = 1;
dr["FirstName"] = "Vincent";
dr["LastName"] = "Durano";
//add the row to DataTable
dt.Rows.Add(dr);
//add new row
dr = dt.NewRow();
//add values to each rows
dr["ID"] = 2;
dr["FirstName"] = "Vianne";
dr["LastName"] = "Durano";
//add the row to DataTable
dt.Rows.Add(dr);
//add new row
dr = dt.NewRow();
//add values to each rows
dr["ID"] = 3;
dr["FirstName"] = "Slash";
dr["LastName"] = "TheMan";
//add the row to DataTable
dt.Rows.Add(dr);
return dt;
}
private void FilterData(string filterValue) {
DataTable dt = CreateTable(); //returns 3 rows
DataTable dtTemp = CreateTable().Clone(); //copy the schema structure
DataRow[] findRow = dt.Select(string.Format("LastName='{0}'",filterValue));
foreach (DataRow row in findRow) {
AddToTempTable(dtTemp, row);
}
//print the result
foreach (DataRow row in dtTemp.Rows) {
Response.Write(string.Format("Name: {0} {1} <br />", row["FirstName"],row["LastName"]));
}
}
private DataTable AddToTempTable(DataTable source, DataRow row) {
DataRow newRow = source.NewRow();
newRow[0] = row[0]; //ID
newRow[1] = row[1]; //FirstName
newRow[2] = row[2]; //LastName
source.Rows.Add(newRow);
return source;
}
protected void Page_Load(object sender, EventArgs e) {
if (!IsPostBack)
FilterData("Durano");
}
}
}
Это приведет к следующему выводу на странице:
Имя: Винсент Дюрано
Имя: Вианна Дюрано
Vincent Maverick Durano
Должно быть, я ослеп, раз не вижу этого. Я не хотел возвращать старые нити к недавним.
Спасибо, что дали мне знать. Для меня это большая трата времени, чтобы дать такой ответ.