.NET Framework - How can I find a DataRow in a DataSet by it's PrimaryKey value? (C++/CLI)

Asked By googl on 05-Jan-08 03:34 AM
How can I find a DataRow in a DataSet by it's PrimaryKey value? This
would be similar to an SQL statement such as "SELECT * FROM MyTable
WHERE MyIndex = 2"...

In the following code I've tried to do this but "dataSet-

/* C++/CLI Code Sample (doesn't work) */

cli::array<System::Data::DataColumn ^> ^colarray =
gcnew cli::array<System::Data::DataColumn ^>(1);
colarray[0] =
dataSet->Tables["GpsData"]->Columns["Distance"];
dataSet->Tables["GpsData"]->PrimaryKey =
colarray;

DataRow ^drow =
dataSet->Tables["GpsData"]->Rows->Find(
dataSet->Tables["CisData"]->Rows[i]["GpsIndexFK"]
);

if(drow != nullptr)
System::Windows::Forms::MessageBox::Show(
safe_cast<Int32 ^>(drow["Index"])->ToString()
);




Carl Daniel [VC++ MVP] replied on 03-Jan-08 04:38 PM
Use DataTable.Select - you can pass a filter string (basically, the
expression from the Where clause of your SQL) to select the rows you want.
You'll get back an array of DataRows.

-cd
googl replied on 05-Jan-08 03:34 AM
You're a life saver. I'd actually already wrote a function to scan a
column for a value because I had not realized this method existed.

Thanks