login  Naam:   Wachtwoord: 
Registreer je!
 Forum

ASP.NET C# - web reference (Opgelost)

Offline Wijnand - 21/01/2009 12:15 (laatste wijziging 20/03/2009 09:09)
Avatar van WijnandModerator Ik heb een webreference gemaakt van een webservice. Alles gaat daarmee goed. Ik kan de juist methoden aanroepen en dergelijke.

Nu hebben zij een voorbeeld-code gemaakt. Alleen die code is in VB ipv in C#. Nu moet ik de onderstaande code ombouwen naar C# maar ik krijg het niet werkend.

  1. privacy



Ik heb zelf dit al:
  1. privacy


Maar de rest, daar kom ik niet uit. Weet iemand hoe ik dit kan ombouwen naar C#?

En nog een stap verder als dat kan, hoe ik de gegevens die ik terug krijg niet in een datagrid maar in een view kan gooien?

13 antwoorden

Gesponsorde links
Offline Ontani - 21/01/2009 12:57
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
http://www.deve...-to-csharp/
Offline Wijnand - 21/01/2009 13:23
Avatar van Wijnand Moderator Gaaf ding. Hij zet alles goed behalve één ding want daar krijg ik een error bij.

noFilter.Field = Huurprojecten1.Klantnr;

Cannot implicitly convert type 'string' to 'wr_Huurprojecten.Huurprojecten_Fields'

.Field wordt zo gedaan:
  1. public Huurprojecten_Fields Field {
  2. get {
  3. return this.fieldField;
  4. }
  5. set {
  6. this.fieldField = value;
  7. }
  8. }


en als ik op de eerste regel blijf staan, staat er dat het om een enum gaat.

Hoe kan ik dat probleempje oplossen?
Offline Ontani - 21/01/2009 13:36
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
Field is toch geen Type...
Offline Wijnand - 21/01/2009 14:03
Avatar van Wijnand Moderator Nou ik heb die ge-escaped en nu werkt het.

Alleen nu heb ik een probleem.

In ViewData["object"] heb ik de gegevens zitten die je normaal zo in een datagrid stopt:

myDataGrid.Datasource = ViewData["object"];
myDataGrid.DataBind();

Hoe kan ik een overzicht krijgen (of het nu een datagrid is of (nog liever eigenlijk) dat je er doorheen kunt lussen) van wat er in ViewData["object"] zit?
Offline Ontani - 21/01/2009 14:06
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
ViewData["object']

Heeft normaal een property columns() die alle kolommen bevat aan de hand hiervan kan je door je dataset lopen.
Offline Wijnand - 21/01/2009 14:08 (laatste wijziging 21/01/2009 14:08)
Avatar van Wijnand Moderator Niet echt 

Extra info: inhoud van dit ding is: TestMVC.ws_Maaktnietuit.Maaktnietuit[]
Offline Ontani - 21/01/2009 14:11
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
Is Maaknietuit geen Object binnen je klasse ofzo? kan je daar de niet van opvragen.
Offline Wijnand - 21/01/2009 14:22
Avatar van Wijnand Moderator Maaktnietuit[] is een object ja.

Maar ik zou niet weten hoe ik die zo kan uitlezen zodat ik hem in mijn view-file zie (een overzichtje).

Ik heb nu dit in die view:
foreach(object item in (IEnumerable)ViewData["object"]) {

En nu krijg ik dit in beeld:
TestMVC.ws_Maaktnietuit.Maaktnietuit
TestMVC.ws_Maaktnietuit.Maaktnietuit
TestMVC.ws_Maaktnietuit.Maaktnietuit
TestMVC.ws_Maaktnietuit.Maaktnietuit
TestMVC.ws_Maaktnietuit.Maaktnietuit
TestMVC.ws_Maaktnietuit.Maaktnietuit
TestMVC.ws_Maaktnietuit.Maaktnietuit
etc.

Ik ga ondertussen zelf even verder zoeken hoe ik een object kan uitlezen dan.
Offline Ontani - 21/01/2009 14:25
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
je object heeft toch properties of niet?

dan kan je toch gewoon doen item.propertyName
Offline Wijnand - 21/01/2009 14:28 (laatste wijziging 21/01/2009 14:49)
Avatar van Wijnand Moderator 'object' does not contain a definition for 'propertyName' and no extension method 'propertyName' accepting a first argument of type 'object' could be found (are you missing a using directive or an assembly reference?)

Gaat lekker man 

Dit krijg ik als ik item.propertyName doe (in dat lusje).


EDIT:
Ik zag op het internet dat een probleem kan zijn dat het een object is. Dus ik vond een scriptje waardoor hij omgevormt wordt tot een array:

  1. Array arr = ViewData["object"] as Array;
  2. string[] str = new string[arr.Length];
  3. int iIndexCounter = 0;
  4. for (int iCount = arr.GetLowerBound(0);iCount <= arr.GetUpperBound(0);iCount++) {
  5. str[iIndexCounter] = arr.GetValue(iCount).ToString();
  6. iIndexCounter++;
  7. }


En dan wordt het loopje zo:

  1. foreach (string item in str) {
  2. Response.Write(item + "=" + item.GetType() + "<br />");
  3. }


Wat ik nu terug krijg is dan:

TestMVC.wr_Huurprojecten.Huurprojecten=System.String
TestMVC.wr_Huurprojecten.Huurprojecten=System.String
TestMVC.wr_Huurprojecten.Huurprojecten=System.String
TestMVC.wr_Huurprojecten.Huurprojecten=System.String
TestMVC.wr_Huurprojecten.Huurprojecten=System.String
TestMVC.wr_Huurprojecten.Huurprojecten=System.String
TestMVC.wr_Huurprojecten.Huurprojecten=System.String

en zo verder.


Het werkt dus nog niet.

Het probleem kan wel zijn dat het object wat in ViewData["object"] is normaal de Datasource voor een datagrid is.

Wat ik wil bereiken is een simpel overzichtje op basis van dat ene object. Het schijnt toch weer lastiger te zijn dan dat het op het eerste gezicht lijkt.
Offline nemesiskoen - 21/01/2009 14:53
Avatar van nemesiskoen Gouden medaille

PHP expert
Hoe ziet zo'n huurproject er uit? Want de data is toch een collectie van het type huurprojecten. Dus aan de hand van een loop door al die data, kan je toch de juiste methodes oproepen op zo een huurprojecten-instantie, en dan de juiste informatie tonen.
Offline Wijnand - 21/01/2009 15:02 (laatste wijziging 21/01/2009 16:12)
Avatar van Wijnand Moderator Uhh.. wablief? 

Ik weet niet precies hoe die data eruit ziet die erin zit, omdat ik dit niet zo kan bekijken.

Als ik naar de webreference toe ga, de juiste reference pak en op 'view in object browser' kijk en dan naar de juiste methode ga dan staat er onder andere dit:

http://www.elem...rkoen2.gif

Kun je hier wat mee? snap je het dan? Ik snap er niet meer zoveel van.

ps. Als het makkelijker is: mijn msn staat aan, dus mocht je tijd hebben ...



EDIT: Ok ik ben al een stapje verder.

Ik heb nu een aantal functies:

In de controller heb ik dit:

  1. object[] obj = WebservicesNavision.HuurProject() as object[];
  2. ViewData["object"] = this.ConvertToDataTable(obj);


Dan hieronder de functies die hierdoor opgeroepen worden:

  1. public DataTable ConvertToDataTable(Object[] array) {
  2. PropertyInfo[] properties = array.GetType().GetElementType().GetProperties();
  3. DataTable dt = CreateDataTable(properties);
  4. if (array.Length != 0) {
  5. foreach (object o in array)
  6. FillData(properties, dt, o);
  7. }
  8. return dt;
  9. }
  10.  
  11. public DataTable CreateDataTable(PropertyInfo[] properties) {
  12. DataTable dt = new DataTable();
  13. DataColumn dc = null;
  14. foreach (PropertyInfo pi in properties) {
  15. dc = new DataColumn();
  16. dc.ColumnName = pi.Name;
  17. dc.DataType = pi.PropertyType;
  18. dt.Columns.Add(dc);
  19. }
  20. return dt;
  21. }
  22.  
  23. public void FillData(PropertyInfo[] properties, DataTable dt, Object o) {
  24. DataRow dr = dt.NewRow();
  25. foreach (PropertyInfo pi in properties) {
  26. dr[pi.Name] = pi.GetValue(o, null);
  27. }
  28. dt.Rows.Add(dr);
  29. }


Dit is op zich allemaal goed.

Dan in de view heb ik:

  1. DataTable myTable = ViewData["object"] as DataTable;
  2. int iRow = 0;
  3. int iCol = 0;
  4. for (iRow = 0;iRow < myTable.Rows.Count;iRow++) {
  5. for (iCol = 0;iCol < myTable.Columns.Count;iCol++) {
  6. Response.Write(myTable.Columns[iCol] + "==Hier moeten de values komen<br />");
  7. }
  8. Response.Write("<br />");
  9. }


Nu is het enige probleem dat ik geen values kan vinden in die dataTable. Weet iemand hoe ik die kan vinden (of kan toevoegen als dit niet gebeurd in de bovenstaande functies)?
Offline nemesiskoen - 21/01/2009 19:13
Avatar van nemesiskoen Gouden medaille

PHP expert
Je kan de datarow als een array benaderen:

  1. foreach(DataRow r in (DataRow)ViewData["object"]) {
  2. Response.Write("kolomnaam: " + row["kolomnaam"]);
  3. }
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.197s