Ja radim u Vb.netu tako da ne znam tacno da ti kazem kako to radi u C# ali sam siguran da je princip isti. Prilicno je opsirno, ali cu probati da skratim.
Prvo ne moras da za svaku formu pravis novu konekciju. Konekciju na formi dobijes automatski kada napravis prvi DataAdapter (mislim kada vizualno dodas tabelu iz databaze na formu). Svi ostali DataAdapteri koje posle napravis koriste tu istu konekciju. To je zato sto dataadapter da bi se konfigurisao mora da ima konekciju, odnosno cetiri komande DataAdaptera (SELECT, UPDATE, DELETE i INSERT) moraju da imaju konekciju. Ukoliko koristis vise DataAdaptera preporucujem ti da prilikom konfigurisanja svakog DataAdaptera, tim (4)komandama das dobra i tebi prepoznatljiva imena. Nakon toga imas jos opcije "Generate DataSet" i "Preview Data". Sve ovo se desava da bi ti imao bolji (vizuelni) pregled. DataSet jos uvek nije "napunjen". To moras sam da uradis, npr.:
da1.fill( ds, "Ime") gde je Ime ime tabele iz databaze.
Vazno: Isti dataset moze da primi podatke iz vise DataAdaptera.
Ukoliko napravis Module i tamo definises konekciju.Npr.:
Module connection
Private con As SqlClient.SqlConnection = New SqlClient.SqlConnection()
Public Sub cony()
con.ConnectionString = "data source=SAKILI\VSDOTNET;initial catalog=nwind;integrated security=SSPI;persist security info=True;workstation id=SAKILI;packet size=4096"
End Sub
End Module
Konekciju ne moras da otvoris( con.open), barem ne za Sql konekciju, za OleDB nisam siguran, a connectionstring mozes da "ukrades" iz properties automatski napravljene konekcije. Sada na formi pod
#Region " Windows Form Designer generated code "
pronadjes gde je komandama DataAdaptera dodeljena automatska konekcija i sve to lepo izbrises. U Load Event-u na formi prvo pozoves Cony() i onda definises za svaku komandu tvoju konekciju iz modula. Kad ovo uradis, gubis vizuelni pregled DataAdaptera

, ali zato u svakoj formi mozes da koristis jednu konekciju.
Sto se tice pristupa iz drugih formi i obrnuto, to ces morati malo sam da proradis

, a osim toga vazno je sta tacno hoces. Najbolje je izgleda da napravis property (as datarow) u formi u kojoj se dataset nalazi i napravis binding izmedju property i dataseta. Ovo opet zavisi od toga sta ti tacno treba. Properties ukoliko ih napravis public mozes "lako" da vidis iz druge forme.
Valjda ne moze krace. Nadam se da je ovo barem malo pomoglo.
Pozdrav.
Vuko