当我试图填写我的数据表文本框时,我有这个问题吗? [英] I have this problem when I'm trying to fill my data table text boxes any help guys ?
本文介绍了当我试图填写我的数据表文本框时,我有这个问题吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
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)
使用(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 =新SqlDataAdapter(sqlCom)
sqqla.Fill(tb)
如果tb.Rows.Count然后
ComboBox1.Text = tb.Rows(0).Item(debt_num)
TextBox3.Text = tb.Rows(0).Item(Emp_name)
DateTimePicker1.T ext = 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)
结束如果
结束使用
结束次级
结束等级
我尝试了什么:
这里是我的代码我想找到它但在这里有一些帮助这里是错误
(
无法将值NULL插入列'emp_num',表'comp.task.dbo.Employee';列不允许空值。 INSERT失败。声明已经终止。
)
解决方案
这里是我的DB SQL SP
USE [comp.task]
GO
/ ** ****对象:StoredProcedure [dbo]。[insert_emp]脚本日期: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 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
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
What I have tried:
here's my code im looking for to figure it out but with some help here here is the error
(
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.
)
解决方案
HERE IS MY DB 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
这篇关于当我试图填写我的数据表文本框时,我有这个问题吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文