Ich habe zwei Spalten in einer Datentabelle:
ID, Calls.
Wie finde ich heraus, was der Wert von Calls where ID = 5
ist?
5 könnte eine beliebige Zahl sein, es ist nur zum Beispiel. Jede Zeile hat eine eindeutige ID.
Legen Sie ein String-Kriterium für die Suche fest
string searchExpression = "ID = 5"
Verwenden Sie dann die .Select()
-Methode des DataTable
-Objekts wie folgt:
DataRow[] foundRows = YourDataTable.Select(searchExpression);
Jetzt können Sie die Ergebnisse wie folgt durchlaufen:
int numberOfCalls;
bool result;
foreach(DataRow dr in foundRows)
{
// Get value of Calls here
result = Int32.TryParse(dr["Calls"], out numberOfCalls);
// Optionally, you can check the result of the attempted try parse here
// and do something if you wish
if(result)
{
// Try parse to 32-bit integer worked
}
else
{
// Try parse to 32-bit integer failed
}
}
Sie können LINQ to DataSet/DataTable verwenden
var rows = dt.AsEnumerable()
.Where(r=> r.Field<int>("ID") == 5);
Da jede Zeile eine eindeutige ID hat, sollten Sie Single/SingleOrDefault
verwenden. Dies würde eine Ausnahme auslösen, wenn Sie mehrere Datensätze zurückerhalten.
DataRow dr = dt.AsEnumerable()
.SingleOrDefault(r=> r.Field<int>("ID") == 5);
(Ersetzen Sie int
für den Typ Ihres ID-Felds)
Sie können es mit method select versuchen
DataRow[] rows = table.Select("ID = 7");
Ich könnte den folgenden Code verwenden. Vielen Dank an alle.
int intID = 5;
DataTable Dt = MyFuctions.GetData();
Dt.PrimaryKey = new DataColumn[] { Dt.Columns["ID"] };
DataRow Drw = Dt.Rows.Find(intID);
if (Drw != null) Dt.Rows.Remove(Drw);
DataRow dataRow = dataTable.AsEnumerable().FirstOrDefault(r => Convert.ToInt32(r["ID"]) == 5);
if (dataRow != null)
{
// code
}
Wenn es sich um ein typisiertes DataSet handelt:
MyDatasetType.MyDataTableRow dataRow = dataSet.MyDataTable.FirstOrDefault(r => r.ID == 5);
if (dataRow != null)
{
// code
}
versuchen Sie diesen Code
DataRow foundRow = FinalDt.Rows.Find(Value);
legen Sie jedoch mindestens einen Primärschlüssel fest
Hallo, erstellen Sie einfach eine einfache Funktion, die wie folgt aussieht. Das gibt alle Zeilen zurück, in denen der eingegebene Aufrufparameter gültig oder wahr ist.
public DataTable SearchRecords(string Col1, DataTable RecordDT_, int KeyWORD)
{
TempTable = RecordDT_;
DataView DV = new DataView(TempTable);
DV.RowFilter = string.Format(string.Format("Convert({0},'System.String')",Col1) + " LIKE '{0}'", KeyWORD);
return DV.ToTable();
}
und nennen Sie es einfach wie unten gezeigt;
DataTable RowsFound=SearchRecords("IdColumn", OriginalTable,5);
wo 5 ist die ID . Danke ..
Vermeiden Sie unnötige Schleifen und versuchen Sie es gegebenenfalls.
string SearchByColumn = "ColumnName=" + value;
DataRow[] hasRows = currentDataTable.Select(SearchByColumn);
if (hasRows.Length == 0)
{
//your logic goes here
}
else
{
//your logic goes here
}
Wenn Sie nach einer bestimmten ID suchen möchten, sollte eine Tabelle einen Primärschlüssel enthalten.