C# 无法将数据插入SQL Server中的外键

C# 无法将数据插入SQL Server中的外键,c#,sql-server,C#,Sql Server,ClassTable:** CREATE TABLE ClassTable ( className varchar(255) NOT NULL PRIMARY KEY, classFee int, academicYear int ); StudentTable: CREATE TABLE StudentTable ( id int NOT NULL IDENTITY(1,1) PRIMARY KEY, firstName varchar(2

ClassTable
:**

CREATE TABLE ClassTable 
(
    className varchar(255) NOT NULL PRIMARY KEY,  
    classFee  int,
    academicYear int
);
StudentTable

CREATE TABLE StudentTable  
(
    id int NOT NULL IDENTITY(1,1) PRIMARY KEY,
    firstName varchar(255) NOT NULL,
    lastName varchar(255),
    fatherName varchar(255),
    fatherNo varchar(255),
    motherName varchar(255),
    motherNo varchar(255),
    dob date,
    dor date,
    gender varchar(255),
    className varchar(255),
    healthInsuranceNo varchar(255),
    resAddress varchar(255),
    photo Image,

    CONSTRAINT FK_StudentTable 
        FOREIGN KEY (className) REFERENCES ClassTable(className)
);
C#代码:

当我手动将查询写入SQL Server时,它允许我将数据插入外键列(
className
),但当我尝试从我的C#Winforms应用程序中插入时,我遇到以下错误:

INSERT语句与外键约束“FK_StudentTable”冲突。冲突发生在数据库“SchoolDatabase”、表“dbo.ClassTable”、列“className”中

我使用此查询在数据库中手动输入一条记录,结果成功:

INSERT INTO StudentTable (firstName, className) 
VALUES ('name here', 'class one');

您试图插入的值是什么?错误很明显,它试图插入一个
ClassTable
表中不存在的值。使用大写字母会使人们不愿意帮助你。请测试cmb_Class.Text的值。我怀疑这是个组合箱?是否需要改为SelectedText?值已存在于类表中,这些值将填充在表单的下拉列表中,并填充从下拉列表中选择的值。我试图在学生表中插入具有FK列(className)的内容。我知道你在说什么,我有基本的理解,比如主键列应该在将数据插入外键列之前拥有数据,并且外键中插入的值应该与主键列中存在的值相同。我有列className(PK)的类表和列firstname和className(FK)的学生表. 当窗体从“在下拉列表中填充和显示的类表”中加载类名时。我希望下拉选择的值被插入到学生表列className(FK)中,尽管该值在类表的className列中已经存在,但我仍然看到异常。
INSERT INTO StudentTable (firstName, className) 
VALUES ('name here', 'class one');