Minulla on pieni sovellus, joka koostuu DAL:sta, BLL:stä ja itse sovelluksesta kaikki eri projekteissa yhden ratkaisun alla Visual Studio 2010:ssä.
DAL käyttää xsd-tiedostoa tietokannan kyselyyn ja BLL:lläni on menetelmiä saada tiedot DAL:sta ja tehdä asioita sen kanssa.
Tällä hetkellä yritän lisätä tietueen käyttämällä sovelluksen takana olevaa koodia kutsuakseni menetelmää BLL:ssä, joka sitten yrittää lisätä tietueen käyttämällä Tableadapter.Update()-menetelmää, joka on luotu DAL:n xsd-tiedostossa.
Voin jo valita ja päivittää tietueita ilman ongelmia, mutta en voi lisätä tietueita.
Sikäli kuin tiedän, TableAdapter.Update()-metodin pitäisi osata lisätä uusi tietue, jos annan sille uuden rivin, mutta se palauttaa arvon 0 - mikä tarkoittaa, että se vaikuttaa 0 riviin, joten se ei toimi.
Taulukkoa, johon yritän lisätä, kutsutaan nimellä tblRoles.
Siinä on ID-sarake, joka on int-, ensisijainen avain- ja identiteettisarake. Siinä on 'Name'-sarake, joka ottaa nvarchar(50), ja siinä on 4 'CanAdduser' jne. saraketta, jotka ottavat tietyn tyyppisen bitin.
Tässä on minun koodini:
APP-koodi takana:
protected void CreateRole(object sender, EventArgs e) {
RolesBL roles = new RolesBL();
roles.CreateRole(NewRoleName.Text);
RolesGridView.DataBind();
}
BLL:
private tblRolesTableAdapter adapter = new tblRolesTableAdapter();
public bool CreateRole(string Name) {
CMSDS.tblRolesDataTable roles = new CMSDS.tblRolesDataTable();
CMSDS.tblRolesRow row = roles.NewtblRolesRow();
row.Name = Name;
row.CanAddUsers = false;
row.CanEditUsers = false;
row.CanSuspendUsers = false;
row.CanChangeUserPasswords = false;
int result = adapter.Update(row);
if(result == 1) {
return true;
}
return false;
}
Ymmärtääkseni tämän pitäisi lisätä uusi rivi taulukkoon, mutta adapter.Update(row)
palauttaa jatkuvasti nollan, enkä tiedä miksi.
Kun teen virheenkorjauksen, näen, että kaikille rivisarakkeille on määritetty oikeat arvot, eikä virheitä esiinny.
Kaikki apu olisi tervetullutta!
Muokkaa:
Unohdin mainita, että kun määritin oletusarvoisen Fill,GetData()-kyselyn xsd-tiedostossa, varmistin, että se luo automaattisesti Insert-, Update- ja Delete-käskyt.