Имам малко приложение, което се състои от DAL, BLL и самото приложение, всички в различни проекти в едно решение във Visual Studio 2010.
Моят DAL използва xsd файл за запитване към базата данни и моят BLL има методи за получаване на информация от DAL и да прави неща с него.
В момента се опитвам да вмъкна запис, като използвам кода зад приложението, за да извикам метод в BLL, който след това се опитва да вмъкне записа с помощта на метода Tableadapter.Update(), генериран в xsd файла на DAL.
Вече мога да избирам и актуализирам записи без проблем, но не мога да вмъквам записи.
Доколкото знам, методът TableAdapter.Update() трябва да знае да вмъкне нов запис, ако му предоставя нов ред, но той връща стойност 0 - което означава, че 0 реда са засегнати, така че не работи.
Таблицата, в която се опитвам да вмъкна, се нарича tblRoles.
Има колона „ID“, която е int, първичен ключ и колона за самоличност. Има колона „Име“, която приема nvarchar(50), и има 4 колони „CanAdduser“ и т.н., които приемат тип бит.
Ето моят код:
APP код зад:
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;
}
Доколкото разбирам, това трябва да вмъкне нов ред в таблицата, но adapter.Update(row)
продължава да връща 0 и не знам защо.
Когато отстранявам грешки, виждам, че на всички колони на реда са присвоени правилните стойности и не се генерират грешки.
Всяка помощ ще бъде оценена!
Редактиране:
Забравих да спомена, че когато конфигурирах заявката по подразбиране Fill,GetData() в xsd файла, се уверих, че автоматично генерира изрази Insert, Update и Delete.