저는 프로그래밍에 익숙하지 않고 VB.NET 및 SQL Server를 사용하여 조직 구성원을 위해 데이터베이스 응용 프로그램을 만드는 작업을 수행했습니다 . 저는 3 인의 테이블을 가지고 있습니다 : 사람, 전화 및 고용. 개인은 내가 자동 증가하도록 설정 한 기본 키를 가지고 있으며 전화 및 고용과 일대일 관계가 있습니다. 데이터를 입력 할 때 모든 사람이 전화 번호를 가지고 있지 않으며 조직의 구성원이 언젠가 실업 상태가 될 수 있으므로 전화 및 고용은 선택 사항 일 수 있습니다. 나는 데이터를 삽입하는 저장 프로 시저를 사용하고 있는데이 내 코드입니다 : 나는 응용 프로그램을 실행할 때 이제일대일 관계를 사용하여 여러 테이블에 데이터를 삽입 할 때 if 문 사용
Dim sex as Boolean
Dim isGovt as Boolean
sex = IIf(optMale.Checked, 1, 0)
isGovt = IIf(optGyes.Checked,1,0)
Dim strCon As String = "my connection"
Dim sqlCon As SqlConnection
sqlCon = New SqlConnection(strCon)
Using (sqlCon)
Dim sqlComm As New SqlCommand
sqlComm.Connection = sqlCon
sqlComm.CommandText = "InsertPerson"
sqlComm.CommandType = CommandType.StoredProcedure
sqlComm.Parameters.AddWithValue("FistName", txtFirstName.Text)
sqlComm.Parameters.AddWithValue("MiddleName", txtMiddleName.Text)
sqlComm.Parameters.AddWithValue("LastName", txtLastName.Text)
sqlComm.Parameters.AddWithValue("IsMale", sex)
sqlComm.Parameters.AddWithValue("BirthDate", dtpBirthDate.Value.Date)
sqlComm.Parameters.AddWithValue("CivilStatus", cboCivilStatus.Text)
sqlComm.Parameters.AddWithValue("Address", txtAddress.Text)
/*I used a checkbox to enable or disable the textbox for telephone number*/
If chkTelephone.Checked = True Then
sqlComm.Parameters.AddWithValue("TelephoneNumber", txtTelephone.Text)
End If
/*Here I used a radiobutton to enable or disable the objects related to a person's employment*/
If optEmployed.Checked = True Then
sqlComm.Parameters.AddWithValue("Industry", cboIndustry.Text)
sqlComm.Parameters.AddWithValue("IsGovernment", isGovt)
sqlComm.Parameters.AddWithValue("WorkPlace", txtWorkPlace.Text)
sqlComm.Parameters.AddWithValue("JobStatus", cboJobStatus.Text)
sqlComm.Parameters.AddWithValue("Salary", txtSalary.Text)
:
USE [myDatabase]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE PROCEDURE [dbo].[InsertPerson]
@FirstName nvarchar(50),
@MiddleName nvarchar(50),
@LastName nvarcahr(50),
@IsMale bit,
@BirthDate date,
@CivilStatus nvarchar(13),
@Address nvarchar(100),
@TelephoneNumber nvarchar (12),
@Industry nvarchar(20),
@IsGovernment bit,
@WorkPlace nvarchar(100),
@JobStatus nvarchar(13),
@Salary decimal (9,2)
AS
declare @PersonId int
INSERT INTO Person(FirstName, MiddleName, LastName, IsMale, BirthDate, CivilStatus, Address) VALUES (@FirstName, @MiddleName, @ LastName, @IsMale, @BirthDate, @CivilStatus, @Address)
SELECT @PersonId = SCOPE_IDENTITY()
/*I used IF STATEMENTS to skip INSERT code in case a person has no telephone number or unemployed*/
IF (@TelephoneNumber IS NOT NULL) BEGIN
INSERT INTO Telephone(TelephonePersonId, TelephoneNumber)
VALUES(@PersonId, @TelephoneNumber)
END
IF (@Industry IS NOT NULL AND @IsGovernment IS NOT NULL AND @WorkPlace IS NOT NULL AND @JobStatus IS NOT NULL AND @Salary IS NOT NULL) BEGIN
INSERT INTO Employment(EmpId, Industry, IsGovernment, WorkPlace, JobStatus, Salary)
VALUES(@PersonId, @Industry, @IsGovernment, @WorkPlace, @JobStatus, @Salary)
END
이 VB.NET을 사용하여 내가 응용 프로그램에서 사용되는 코드는 나는이 오류가 저장 버튼을 클릭합니다 :
SQLEXCEPTION이었다 처리되지 않은
절차 또는 함수 'InsertPerson는'매개 변수 '@TelephoneNumber'제공되지 않았습니다 기대하고있다.
내가 잘못 된 곳을 말해 줄 수 있습니까? 이것을 할 또 다른 방법이 있습니까? 나는 정말로 당신이 나에게 줄 수있는 어떤 도움, 링크 또는 충고에 감사 할 것입니다. 저장 프로 시저에서