webForumDet fria alternativet

C# WinForm: DataBinding problem

2 svar · 239 visningar · startad av aleborg

aleborgMedlem sedan jan. 20013 341 inlägg
#1

Jag har en Winform där jag har placerat en Tab-kontroll med 2 sidor, ena sidan har jag en sökfunktion som listar "Kunder" i en databas den andra sidan ska visa den "Kund" som man valt.
Det är inga problem med söksidan men på den andra sidan har jag provat att binda textboxarna till ett dataset som jag fyller med den valda "Kundens" information.

Det jag gjort är att jag skapat ett nytt untyped DataSet som heter "dsUser", i det har jag en tabell, "Table1", och i tabellen har jag kolumnerna "Company", Firstname", "Lastname" osv, samma fält som finns i databasen.
På tab-sidan har jag ett antal textboxar, "txtCompany", "txtFirstname", "txtLastname" osv, alla är bundna med databinding till motsvarande fält i datasetet.

När man klickar på en "Kund" på söksidan körs följande kod:

	private void LoadContactInfo(int userid,int contacttypeid)
	{
		//Hämta rätt kund från Webservice och fyll dataset
		Register reg = new Register();
		this.dsUser = reg.GetContact(userid,contacttypeid);
		//Se till att tabellen har rätt namn
		dsUser.Tables[0].TableName="Table1";
	}

Rätt kund hämtas från en webservice och "dsUser" fylls med all information om kunden. Här är det ju sen tänkt att alla textboxar ska uppdateras med den nya informationen, men hur??? Och hur ser jag sen till att all info uppdateras i datasetet om man gör ändringar i textboxarna?

GladhMedlem sedan maj 20012 812 inlägg
#2

Uppdatera textboxar är att göra det den hårda vägen.

txtFirstName.Text = dsUser.Tables[0].Column[0];
txtLastName.Text = dsUser.Tables[0].Column[1];
..

För att uppdatera datasetet så vänder du bara på ovanstående. Sedan kanske man vill skicka tillbaka datasetet till webservicen så att databasen också uppdateras.

- M

aleborgMedlem sedan jan. 20013 341 inlägg
#3

Tack Gladh, det var precis det jag ville undvika att göra :e
Hade hoppats på att det fanns ett enklare sätt!
Det lutar åt att göra en funktion som loopar alla kontroller i en specificerad kontroll och fyller med info från ett dataset. Har man många kontroller som ska uppdateras och ändras mm så är det nog det smartaste, dvs man skickar in tabpage-kontrollen och datasetet och loopar igenom rubbet och fyller.

133 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)