Avatar billede oksana Nybegynder
15. april 2005 - 12:37 Der er 20 kommentarer og
1 løsning

webservice og datagrid

Hej

Jeg har et problem med datagrid, hvor jeg prøver at vise data frem via en web service .

Min metode i Web service ser sådan ud:
[WebMethod]
public ArrayList RetrieveItems()
{
return myLayer.RetrieveItems();
}

myLayer klasse håndterer database objekter , ser sådan ud :

public ArrayList RetrieveItems()
{
ArrayList itemList = new ArrayList();

DataTable customerTable = RetrieveDataSet("SELECT * FROM Item").Tables["Table"];
foreach (DataRow row in customerTable.Rows)
{
Item loadItem = new Item(Convert.ToInt32(row["itemId"]),row["itemName"].ToString(),
row["itemCountry"].ToString(), row["itemDescription"].ToString(),Convert.ToDouble(row["itemPrice"]));
itemList.Add(loadItem);
}
return itemList;
}

I selve form kalder jeg web servise med den metode
private void loadItems()
{
dataGrid1.DataSource= bws.RetrieveItems();//bws-en web service
}

Når jeg kører applikation, kommer bare ikke noget data frem i datagrid. Er der nogen , der kender til det?

Mvh
Oksana
Avatar billede burningice Nybegynder
15. april 2005 - 12:48 #1
har du husket at kalde DataBind() ?
Avatar billede oksana Nybegynder
15. april 2005 - 12:57 #2
jeg har prøvet at kalde DataBinding() på den datagrid jeg har (det er kun windows application, ikke Web application), men den ændrede ikke noget
Avatar billede oksana Nybegynder
15. april 2005 - 15:43 #3
Jeg har lige prøvet igen at binde data til datagrid ved at kalde dataGrid1.DataBindings();

og fik en fejl:
System.Windows.Forms.Control.DataBindings denotes a 'property' where a method was expected ;-(
Avatar billede burningice Nybegynder
15. april 2005 - 16:25 #4
ja... mit forslag er kun relevant hvis det var i forbindelse med asp.net

prøv

private void loadItems()
{
ArrayList arr = bws.RetrieveItems();//bws-en web service
MessageBox.Show(arr.Count.ToString());

dataGrid1.DataSource = arr;
}
Avatar billede oksana Nybegynder
15. april 2005 - 16:30 #5
giver en fejl:
Cannot implicitly convert type object[] to System.Collections.ArrayList
;-(
Avatar billede burningice Nybegynder
15. april 2005 - 16:36 #6
hm... skrev du ikke at din webservice returnerer et ArrayList ?

hvad så med

private void loadItems()
{
object[] arr = bws.RetrieveItems();//bws-en web service
MessageBox.Show(arr.Lenght.ToString());

dataGrid1.DataSource = arr;
}
Avatar billede oksana Nybegynder
15. april 2005 - 21:11 #7
Hej cyberfessor!! Er du stadig der?
Har haft problemmer med min internetforbindelse ;-(
Har lige prøvet med array af objekter, som du sagde..det kompileres uden fejl ;-) og messagebox viser den rigtig antal af objekter, men  det kommer bare ikke noget ind i datagrid
;-(
Avatar billede burningice Nybegynder
15. april 2005 - 21:29 #8
jeg tror lige du skal finde ud af hvorfor at webservicen returnerer et object[] istedet for ArrayList, for der er i hvert fald noget som det ikke skal være
Avatar billede oksana Nybegynder
15. april 2005 - 21:40 #9
ok
Avatar billede oksana Nybegynder
15. april 2005 - 23:34 #10
Hej cyberfessor,
jeg tror jeg har fundet ud af hvorfor det kommer fejl ved debuging , når jeg prøver at kalde: (men ikke sikkert at det er det)

ArrayList arr = bws.RetrieveItems();//bws-en web service

Når jeg laver en instance af min webservice, danner jeg selfølgelig et objekt af den:
private localhost.WebService bws = new localhost.WebService();
Og så kan den ikke finde ud af at konvertere det objekt til Collections.ArrayList
Tror du det er det, der er galt og hvordan kan man løse det ellers??

mvh
Oksana
Avatar billede burningice Nybegynder
15. april 2005 - 23:42 #11
prøv at slet webservice-referencen fra dit projekt og add den igen. Det kan være VS.Net har lavet noget rod i den når den skulle genererer en WSDL-proxy
Avatar billede oksana Nybegynder
16. april 2005 - 10:08 #12
ok,prøver lige det
Avatar billede oksana Nybegynder
16. april 2005 - 16:42 #13
hjalp ikke rigtig.
Kunne det være namespace? Min webservice og min form.cs har forskellige namespaces.
Kan det være det, der er galt???

/Oksana
Avatar billede burningice Nybegynder
21. april 2005 - 17:45 #14
jeg ved sq ikke... prøv at hiv fat i arne_v. Det kan være din WSDL bliver genereret forkert, men når vi skal til at rode med sådan noget kan jeg ikke følge med længere :)
Avatar billede oksana Nybegynder
22. april 2005 - 11:30 #15
problemmet er løst.
Det var autogenereret kode i selve web reference, som laver noget rod ;-(

Tak for hjælpen anyway

/Oksana
Avatar billede burningice Nybegynder
22. april 2005 - 15:40 #16
så havde mine bange anelser ret.
Avatar billede oksana Nybegynder
22. april 2005 - 19:08 #17
cyberfessor, hvordan kan jeg give dig de points ??
du har hjulpet alligevel ;-)
Avatar billede burningice Nybegynder
22. april 2005 - 19:11 #18
du skal bare acceptere mit svar
Avatar billede oksana Nybegynder
22. april 2005 - 19:12 #19
ok, prøver lige ;-)
Avatar billede oksana Nybegynder
22. april 2005 - 19:12 #20
det har jeg lige gjort, sker der noget?
Avatar billede burningice Nybegynder
22. april 2005 - 21:03 #21
:) nej... ikke helt

har du en boks ude til venstre hvor mit navn står i? i så fald, så marker det, og tryk på knappen "accepter"
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester