У меня есть небольшое приложение, которое состоит из DAL, BLL и самого приложения в разных проектах в рамках одного решения в Visual Studio 2010.
Мой DAL использует файл xsd для запроса базы данных и моегоУ BLL есть методы для получения информации из DAL и выполнения каких-либо действий с ней.
В настоящее время я пытаюсь вставить запись, используя код приложения, чтобы вызвать метод в BLL, который затем пытаетсявставить запись с помощью метода Tableadapter.Update (), сгенерированного в файле xsd DAL.
Я уже могу без проблем выбирать и обновлять записи, но не могу вставить записи.
Насколько я знаю, метод TableAdapter.Update () должен знать, чтобы вставить новую запись, если я предоставлю ей новую строку, однако он возвращает значение 0 - это означает, что затронуто 0 строк, поэтому это не так.t работает.
Таблица, в которую я пытаюсь вставить, называется tblRoles.
В ней есть столбец 'ID', который представляет собой int, primary keу и идентификационный столбец.Он имеет столбец «Имя», который принимает nvarchar (50), и имеет 4 столбца «CanAdduser» и т. Д., Которые принимают тип бита.
Вот мой код:
Код приложения за:
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.