Hello,
I have a question about returning Array of structs from a web service.
I am querying a database and building a datatable. I am trying to fill
an array of structs with the data and return it to my presentation
layer. I can see my records in the datatable, but the structs all have
the same data. Here is the code.
public kbReturnResults[] GetKB(string group, string category, string
description)
{
KB objKB = new KB();
objKB.Group = group;
objKB.Category = category;
objKB.Description = description;
int number;
KBManager kbMgr = new KBManager();
kbReturnResults[] kb = null;
number = int.Parse(kbMgr.Count(objKB));
DataTable objDataTable = kbMgr.Lookup(objKB);
kb = new kbReturnResults[number];
foreach(DataRow row in objDataTable.Rows)
{
for (int i = 0; i < number; i++)
{
foreach(DataColumn dataCol in objDataTable.Columns)
{
if(dataCol.ColumnName.Equals("KBID"))
{
kb[i].KBID = "KBID "+i.ToString();
}
if(dataCol.ColumnName.Equals("Author"))
{
kb[i].Author = row[dataCol].ToString();
}
if(dataCol.ColumnName.Equals("Link"))
{
if(row[dataCol].Equals(" "))
{
kb[i].Link = "Null";
}
else
{
kb[i].Link = row[dataCol].ToString();
}
}
if(dataCol.ColumnName.Equals("Description"))
{
kb[i].Description = row[dataCol].ToString();
}
if(dataCol.ColumnName.Equals("Solution"))
{
if(row[dataCol].Equals(""))
{
kb[i].Solution = "Null";
}
else
{
kb[i].Solution = row[dataCol].ToString();
}
}
if(dataCol.ColumnName.Equals("Group"))
{
kb[i].Group = row[dataCol].ToString();
}
if(dataCol.ColumnName.Equals("Date"))
{
kb[i].KBDate = row[dataCol].ToString();
}
if(dataCol.ColumnName.Equals("Subject"))
{
kb[i].Subject = row[dataCol].ToString();
}
if(dataCol.ColumnName.Equals("View"))
{
kb[i].KBView = int.Parse(row[dataCol].ToString());
}
if(dataCol.ColumnName.Equals("FileName"))
{
kb[i].FileName = row[dataCol].ToString();
}
if(dataCol.ColumnName.Equals("KBDate"))
{
kb[i].KBDate = row[dataCol].ToString();
}
if(dataCol.ColumnName.Equals("Category"))
{
kb[i].Category= row[dataCol].ToString();
}
}
}
}
return kb;
}