未选择ComboBox值时插入SQL NULL

时间:2011-08-31 15:47:47

标签: c# sql-server-2008 combobox null

StudeStude>场景 - C#应用程序+ SQL Server 2008 R2

我有一个具有以下结构的表货币

currencyID - int - NOT NULL - Primary Key - IS Identity (**True**)

currency - VARCHAR(50) - NOT NULL
  1. 现在,此currencyID是另一个表Student_Payment_Details中的外键。
  2. 货币表托管在ComboBox控件中。
  3. 如果没有选择货币选项,我需要一种方法来插入NULL(或什么都不是)。 (例如selectedIndex = -1)
  4.   

    一直在阅读文章,指出在主表中绑定到主要NOT NULL键时,为foriegn键插入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
      

3 个答案:

答案 0 :(得分:1)

一种选择是在表格中使用“无”货币记录并使用该ID。

答案 1 :(得分:1)

即使它是货币表的FK,也可以在表CurrencyID == NULL中插入Student_Payment_Details的记录。

不可能的是在货币表中插入带有PK NULL的记录,但这不是你的情况。

答案 2 :(得分:0)

你必须与它保持一定的距离,我看到两个选项:

  • 使用假值(如其他答案中的none)。
  • 根本不要插入行,并将其视为未选择任何选项。