当没有选择ComboBox值时,插入SQL NULL
本文关键字:插入 SQL NULL 值时 有选择 ComboBox | 更新日期: 2023-09-27 18:07:04
studentstudent>场景- c# Application + SQL Server 2008 R2
我有一个表Currency,其结构如下
currencyID - int - NOT NULL - Primary Key - IS Identity (**True**)
currency - VARCHAR(50) - NOT NULL
- 现在,这个currencyID是另一个表Student_Payment_Details中的外键。
- 货币表托管在一个组合框控件中。
- 我需要一种方法来插入NULL(或什么都没有),如果没有货币选项被选择。(例如selecteindex = -1)
一直在阅读一些文章,这些文章指出,当外键绑定到主表中的主NOT NULL键时,为外键插入NULL是违反所有SQL规则的
所以,伙计们,我需要你的建议为一个解决方案。
这是我的存储过程的精简版本
CREATE PROCEDURE [dbo]。(spStudentPaymentDetails)
-- PARAMETERS **** blah blah *** @currencyID int = null, @studentFees varchar(100) = null, **** blah blah *** AS BEGIN SET NOCOUNT ON; -- Add Student Details INSERT INTO Student_Payment_Details(****,currencyID,studentFees,****) values(****,@currencyID,@studentFees,****); SELECT SCOPE_IDENTITY(); END
可以在表Student_Payment_Details
中插入CurrencyID == NULL
的记录,即使它是货币表的FK。
什么是不可能的是插入一个记录PK NULL在货币表,但这不是你的情况。
一个选项是在表中有一个'NONE'货币记录,并使用该ID。
你必须与它保持一定距离,我看到两个选项:
- 使用假值(就像其他答案中的none)
- 根本不插入行,并将其视为未选择选项。