Через WorkersTableAdapter вызываю хранимую процедуру для добавления записи в связанные таблицы Workers и Pasport. При вызове процедуры выдаёт ошибку: System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта."
Вызов процедуры в коде:
private void AddWorker_Click(object sender, RoutedEventArgs e)
{
if (SureName.Text != null && Name.Text != null && Phone.Text.Length == 12 && Birthday.Text.Length == 10 && Series.Text.Length == 4 && Number.Text.Length == 6)
{
WorkersTableAdapter.InsertQuery(SureName.Text, Name.Text, LastName.Text, Phone.Text, Convert.ToDateTime(Birthday.Text), Position.Text, Convert.ToInt32((WorkDays.SelectedItem as DataRowView).Row.ItemArray[0]), Convert.ToInt32((Change.SelectedItem as DataRowView).Row.ItemArray[0]), Convert.ToInt32(Salary.Text), Series.Text, Number.Text);
Predstavlenie();
StoryListTableAdapter.InsertQueryStoryList(DateTime.Now, CurrentUser, "Добавил работника");
}
else
{
MessageBox.Show("Одно или несколько полей заполнены неправильно!");
}
}
Процедура в базе:
ALTER PROCEDURE [dbo].[InsertQuery]
(
@SureName varchar(20),
@Name varchar(20),
@LastName varchar(20),
@Phone varchar(12),
@Birthday date,
@Position varchar(20),
@ID_WorkWeek int,
@ID_Change int,
@Salary int,
@Series varchar(4),
@Number varchar(6)
)
AS
SET NOCOUNT OFF;
INSERT INTO [dbo].[Workers] ([SureName], [Name], [LastName], [Phone], [Birthday], [Position], [ID_WorkWeek], [ID_Change], [Salary]) VALUES (@SureName, @Name, @LastName, @Phone, @Birthday, @Position, @ID_WorkWeek, @ID_Change, @Salary);
SELECT ID_Worker, SureName, Name, LastName, Phone, Birthday, Position, ID_WorkWeek, ID_Change, Salary FROM Workers WHERE (ID_Worker = SCOPE_IDENTITY());
INSERT INTO [dbo].[Pasport] ([ID_Pasport], [Series], [Number]) VALUES ((SELECT ID_Worker FROM Workers WHERE (ID_Worker = SCOPE_IDENTITY())), @Series, @Number);
SELECT ID_Pasport, Series, Number FROM Pasport WHERE (ID_Pasport = (SELECT ID_Worker FROM Workers WHERE (ID_Worker = SCOPE_IDENTITY())))