Osaisiko joku neuvoa (siis vääntää rautalangasta) Visual Studio 2008 tietokantayhteyden ongelman suhteen? Siis.. WindowsFormsApplicationiin haetaan tiedot Access-tietokannasta. Tietojen haku suoritetaan käyttämällä Data Sourcesia. Tietokannan tiedot näkyy formilla oikein ja niiden selaus toimii. Tällä hetkellä yhdellä formilla näytetään vain yhden taulun tiedot. Tietokantaan ei ole asetettu käyttäjätunnusta/salasanaa.
Lisää/poista/muokkaa-toimintoihin käytän Binding Navigatoria, jonka Visual Studio luo automaattisesti, kun Data Sourcen tiedot lisätään formille. Ongelmana on, etteivät formilla tehdyt muutokset tallennu tietokantaan ollenkaan. Päivitetyt tiedot näkyvät formilla oikein, kunnes Visual Studio käynnistetään uudestaan. Eli siis V.Studion uudelleenkäynnistys hävittää uudet/päivitetyt ötallennetutö tiedot, ikään kuin tiedot tallentuisivat vain jonnekin väliaikaiseen muistiin. Mistähän tämä mahtaa johtua? Itse en enää keksi, mikä tähän olisi ratkaisuna. :/
MSDN:stä
Try Me.Validate() Me.CustomersBindingSource.EndEdit() Me.CustomersTableAdapter.Update(Me.NorthwindDataSet.Customers) MsgBox("Update successful") Catch ex As Exception MsgBox("Update failed") End Try
Kokeilin tuota koodia, mutta eihän siitä ole mitään hyötyä. Tietokannan päivitys onnistuu "periaatteessa", joten tuo msgBox-viestikin sen niin ilmoittaa. Uudet ja päivitetyt tiedot näkyvät niin kauan, kunnes suljen Visual Studion. Uudelleenkäynnistyksen jälkeen kaikki uudet/päivitetyt tiedot ovat hävinneet. Tämä on siis se ongelma, miksi tiedot "tallentuvat" mutta häviävät kun VS suljetaan?
Moikka,
Jos en väärin muista niin törmäsin samaan ongelmaan, ongelma ratkesi kun poistin "väliaikaisen tietokannan" Vb:n solution explorerista, ja käytin ihan aitoa kantaa polun päästä.
T.Mika
Osaisitko neuvoa tarkemmin, miten tuon "väliaikaisen tietokannan" saa poistettua? Mistä edes tiedän, mikä on väliaikainen tietokanta? Minulle saa tosiaan vääntää rautalangasta ja piirtää kuvan yms. ;)
Tarkoittaisikohan Huh-hellettä, että jos sisällytät .mdb-tiedoston projektiin, niin silloinhan se kopioi sen käännöksen yhteydessä käännöshakemistoon (tyyliin bin\x86\Release\ ) ja ohjelma mahdollisesti käyttää sitä sieltä. Tällöin se myös korvataan aina uudestaan alkuperäisellä kun käännät uudestaan.
Juurikin näin Grez, solution explorerissa sinulla on näkyvissä vain väliaikainen .mdb kanta, ja sen voi poistaa, vb ilmoittaa seuraavan kääntämisen yhteydessä jos kantaa ei löydy määritetystä polusta, silloin kopioit itse sen kannan sinne. Näin minä tein ja sen jälkeen ei ollut enään noita ongelmia.
Ota kuitenkin varmuuskopio ensin projektistasi ennen kuin poistat.
Poista siis Solution explorerista kannannimi.mdb, mutta älä poista mitään Data sources ikkunasta
Solution explorerissa voi myös valita kannan kohdalle "Do Not Copy". Muistaakseni oletuksena on "Copy always". Houkutus olisi suuri valita "Copy only if newer", mutta oman kokemuksen mukaan se ei eroa "Copy always" valinnasta.
Tietokantani on muotoa .accdb. Toimiikohan tuo kannan poistaminen Solution Explorerista kuitenkin?
Kokeilin äskettäin, ilmeneekö ongelma ohjelman julkaisuversiossa, ja kas, kaikki toimii niinkuin pitääkin. :)
Aihe on jo aika vanha, joten et voi enää vastata siihen.