Trådstart 19 juli 2006 16:26 #1 Hejsan,
Jag skulle vilja göra motsvarande med en DataTable (pseudokod)
foreach(string aName in sColl)
{
myID = db.Get("Select myID From aTable Where theName = " + aName);
}
Hur gör man det..?
Jag har lekt lite men vet inte hur jag ska göra riktigt.. här är min testkod:
private void InsertComputers()
{
string parentLDAP = "LDAP://...";
List<string> ListOUChildren = adConn.EnumerateOuChildren(parentLDAP);
StringBuilder sbTemp = new StringBuilder();
foreach (string ouChild in ListOUChildren)
{
//dataViewOU.RowFilter = string.Format("OuName = '{0}'", ouChild);
DataRow[] rowOU = dataTableOU.Select(string.Format("OuName='{0}'", ouChild), "OuID ASC", DataViewRowState.CurrentRows);
sbTemp.Append("<br/>OuID: " + rowOU??);
}
lblResult.Text += sbTemp.ToString();
}
Nedanstående fungerar men jag vet inte hur jag får ihop ovanstående riktigt..? (är på väg härifrån just nu men kan gärna förklara imorgon så det blir lite tydligare kanske =)
private void InitializeDataTable()
{
DataView dataViewOU = dbConn.RunProcedure("coke_SelectOU").DefaultView;
dataViewOU.RowFilter = "OuName = '...'";
dataViewOU.Sort = "OuID ASC";
foreach (DataRowView rowOU in dataViewOU)
{
lblResult.Text += "<br/>OU ID: " + rowOU["OuID"].ToString();
}
}
E emission Medlem sedan dec. 1999 6 721 inlägg Vad är själva problemet? rowOU är en array.
DataRow[] ouRows = dataTableOU.Select(string.Format("OuName='{0}'", ouChild), "OuID ASC", DataViewRowState.CurrentRows);
foreach (DataRow ouRow in ouRows)
{
sbTemp.AppendFormat("<br/>OuID: {0}",ouRow["OuID"]);
}
Hej Emission, tack för ditt svar =)
I och för sig inget problem om man lägger den foreach loopen inom den första så här:
private void InsertComputers()
{
string parentLDAP = "LDAP://...";
List<string> ListOUChildren = adConn.EnumerateOuChildren(parentLDAP);
StringBuilder sbTemp = new StringBuilder();
foreach (string ouChild in ListOUChildren)
{
DataRow[] rowOU = dataTableOU.Select(string.Format("OuName='{0}'", ouChild), "OuID ASC", DataViewRowState.CurrentRows);
[B]
foreach (DataRow row in rowOU)
{
sbTemp.AppendFormat("<br/>OuID: {0}", row["OuID"]);
}
}
[/B]
lblResult.Text += sbTemp.ToString();
}
.. fast det kändes lite konstigt att behöva göra en foreach om jag vet att jag bara vill få fram en rad.. måste man göra foreach? I annat fall funkar ju ovanstående..
E emission Medlem sedan dec. 1999 6 721 inlägg Nej, du måste inte göra en foreach, men det är en array
DataRow[] ouRows= dataTableOU.Select(string.Format("OuName='{0}'", ouChild), "OuID ASC", DataViewRowState.CurrentRows);
if (ouRows.Length>0)
{
sbTemp.AppendFormat("<br/>OuID: {0}", ouRows[0]["OuID"]);
}
a just det.. dum jag e.. tack.. =)