如何将数据插入外键表?
我在数据库Addemployees
中有两个表,Normal_L
包含一个ID,我想将数据插入到Normal_L
表中,其中ID必须与{{1}保持关联表。
Addemployees
我希望你可以帮助我
答案 0 :(得分:1)
好的,如果你想正确使用存储过程,那么:
CREATE PROCEDURE [dbo].[YourProcName]
-- Add the parameters for the stored procedure here
@fromD nvarchar(50), --yourType
@toD nvarchar(50), --Type
@DScrip nvarchar(50), --yourType
@ID int
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
INSERT into Normal_L (fromD,toD,DScrip)
SELECT @fromD ,
@toD,
@DScrip
FROM Addemployees
WHERE Addemployees.ID = @ID
END
此存储过程不仅可以防止先前代码中的sql注入,而且如果您读取closelly,则只有在Addemployee中的ID与您的参数匹配时,select才会选择。再次你可以使用一个简单的外键,但因为我不知道你的基础结构我不能告诉。
现在为您的VB代码:
Dim cmd As New System.Data.SqlClient.SqlCommand
Dim RA As Integer
Try
cn.Open()
cmd.CommandType = System.Data.CommandType.StoredProcedure
If Me.RadioButton1.Checked Then
cmd = New SqlCommand("YourProcName", cn)
cmd.Connection = cn
cmd.Parameters.AddWithValue("@fromD", DateTimePicker2.Text)
cmd.Parameters.AddWithValue("@toD",DateTimePicker1.Text )
cmd.Parameters.AddWithValue("@DScrip",TextBox5.Text )
cmd.Parameters.AddWithValue("@ID", ComboBox1.Text)
RA = cmd.ExecuteNonQuery()
MessageBox.Show("Process successful!", "Save", MessageBoxButtons.OK, MessageBoxIcon.Information)
cn.Close()
End If
Catch
MessageBox.Show("Error!", "exit", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
TextBox3.Clear()
TextBox4.Clear()
TextBox5.Clear()
End Sub
你需要更改存储过程中的类型我不知道你在使用什么。你的最终代码应该大致相同。
希望这会有所帮助