Man ir neliela lietojumprogramma, kas sastāv no DAL, BLL un pašas lietojumprogrammas dažādos projektos vienā risinājumā programmā Visual Studio 2010.
Mans DAL izmanto xsd failu, lai vaicātu datu bāzē, un manam BLL ir metodes, kā iegūt informāciju no DAL un ar to rīkoties.
Pašlaik mēģinu ievietot ierakstu, izmantojot kodu, kas atrodas aiz lietojumprogrammas, lai izsauktu metodi BLL, kas pēc tam mēģina ievietot ierakstu, izmantojot metodi Tableadapter.Update(), kas ģenerēta DAL xsd failā.
Es jau varu bez problēmām atlasīt un atjaunināt ierakstus, bet nevaru ievietot ierakstus.
Cik es zinu, metodei TableAdapter.Update() ir jāzina, lai ievietotu jaunu ierakstu, ja es to nodrošināju ar jaunu rindu, tomēr tā atgriež vērtību 0 — tas nozīmē, ka tika ietekmētas 0 rindas, tāpēc tā nedarbojas.
Tabulu, kurā mēģinu ievietot, sauc par tblRoles.
Tam ir sleja “ID”, kas ir int, primārās atslēgas un identitātes kolonna. Tam ir kolonna "Nosaukums", kas aizņem nvarchar (50), un tai ir 4 kolonnas "CanAdduser" utt., kas aizņem noteikta veida bitu.
Šeit ir mans kods:
APP kods aiz:
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;
}
Cik es saprotu, tabulā jāievieto jauna rinda, taču adapter.Update(row)
turpina atdot 0, un es nezinu, kāpēc.
Atkļūdojot, es redzu, ka visām rindu kolonnām ir piešķirtas pareizās vērtības un kļūdas netiek izmestas.
Jebkāda palīdzība būtu pateicīga!
Rediģēt:
Es aizmirsu pieminēt, ka, konfigurējot noklusējuma vaicājumu Fill,GetData() xsd failā, es pārliecinājos, ka tas automātiski ģenerē Insert, Update un Delete priekšrakstus.