Shaddow>dark Ответов: 1

У меня есть эта проблема, когда я пытаюсь заполнить свои текстовые поля таблицы данных.


Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        Dim con As SqlConnection = New SqlConnection("Data Source=S-MHAMEED\SQL2008RTWO;Initial Catalog=comp.task;User ID=sa;Password=likebefore")
        Using (con)

            Dim tb As New DataTable
            Dim sqlCom As New SqlCommand()
            Dim sqqla As New SqlDataAdapter()

            sqlCom.Connection = con
            sqlCom.CommandText = "insert_emp"
            sqlCom.CommandType = CommandType.StoredProcedure
            sqlCom.Parameters.AddWithValue("Emp_num", Val(TextBox1.Text))
            sqqla = New SqlDataAdapter(sqlCom)
            sqqla.Fill(tb)

            If tb.Rows.Count Then
                ComboBox1.Text = tb.Rows(0).Item("debt_num")
                TextBox3.Text = tb.Rows(0).Item("Emp_name")
                DateTimePicker1.Text = tb.Rows(0).Item("EMP_WORK_DATE")
                TextBox5.Text = tb.Rows(0).Item("EMP_DESC")
                TextBox6.Text = tb.Rows(0).Item("DEBT_NAME")
                DateTimePicker2.Text = tb.Rows(0).Item("EMP_P_DATE")
                TextBox8.Text = tb.Rows(0).Item("EMP_SAL")

            End If

        End Using
    End Sub
End Class


Что я уже пробовал:

вот мой код, который я ищу, чтобы понять это, но с некоторой помощью здесь вот ошибка

(
Cannot insert the value NULL into column 'emp_num', table 'comp.task.dbo.Employee'; column does not allow nulls. INSERT fails. The statement has been terminated.
)

1 Ответов

Рейтинг:
12

Shaddow>dark

ВОТ МОЯ БД SQL SP


USE [comp.task]


GO
/****** Object:  StoredProcedure [dbo].[insert_emp]    Script Date: 02/11/2018 16:22:22 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


ALTER  PROCEDURE [dbo].[insert_emp]
@EMP_NUM       numeric(18)   = null,
@DEBT_NUM      numeric(18)   =null,
@EMP_NAME      varchar(150)  =null,
@EMP_P_DATE    smalldatetime =null,
@EMP_WORK_DATE smalldatetime =null,
@EMP_SAL       NUMERIC(18)   =null,
@EMP_DESC      VARCHAR(250)  =null,
@DEBT_NAME     VARCHAR(150)  =null
AS
BEGIN
 IF NOT EXISTS(SELECT 1 FROM Employee  WHERE EMP_NUM  = @EMP_NUM )
	BEGIN
INSERT INTO DBO.EMPLOYEE ( DEPT_NUM ,EMP_NAME ,EMP_P_DATE ,EMP_WORK_DATE ,EMP_SAL ,EMP_DESC,DEBT_NAME )
VALUES (@DEBT_NUM,@EMP_NAME,@EMP_P_DATE,@EMP_WORK_DATE,@EMP_SAL,@EMP_DESC,@DEBT_NAME  )
END
	ELSE
	BEGIN
	UPDATE dbo.Employee 
		SET emp_num =@EMP_NUM  ,dept_num =@DEBT_NUM ,emp_name =@EMP_NAME ,emp_p_date =@EMP_P_DATE ,emp_work_date =@EMP_WORK_DATE ,emp_sal =@EMP_SAL ,emp_desc =@EMP_DESC ,debt_name =@DEBT_NAME  
		WHERE emp_num =@EMP_NUM 
		
	END


Maciej Los

Это не naswer. Пожалуйста, удалите его, чтобы избежать вниз-votiong. Вместо этого используйте "улучшить вопрос".
Сообщение об ошибке вполне понятно. Вы не можете добавить null в поле EmpId.

Shaddow>dark

Ты здесь за помощью или как ???\

Maciej Los

Если вы хотите помочь, вы должны уважать правила о размещении вопросов.