public class Person
{
public int PersonId { get; set; }
public string SurName { get; set; }
public string LastName { get; set; }
public DateTime DateOfBirth { get; set; }
public DateTime DateOfDeath { get; set; }
public Gender gender { get; set; }
public Person Father { get; set; }
public Person Mother { get; set; }
我想通过查询将父亲和母亲添加到数据库中。
create table Persons(
PersonId int primary key identity,
SurName nvarchar(50) not null,
LastName nvarchar(50) not null,
DateOfBirth date not null,
DateOfDeath date null,
Gender tinyint not null,
Father ??nvarchar(50) null,
Mother ??varchar(50) null
);
我不知道该使用什么类型。而且在其他任何地方都找不到。
public void InsertPerson(Person person)
{
using (SqlConnection sqlConnection = new SqlConnection(connectionString))
{
using (SqlCommand sqlCommand =
new SqlCommand("insert into Persons values (@surName, @lastName, @dateOfBirth, @dateOfDeath, @gender, @father, @mother);", sqlConnection))
{
sqlCommand.Parameters.AddWithValue("@surName", person.SurName);
sqlCommand.Parameters.AddWithValue("@lastName", person.LastName);
sqlCommand.Parameters.AddWithValue("@dateOfBirth", person.DateOfBirth);
sqlCommand.Parameters.AddWithValue("@dateOfDeath", person.DateOfDeath);
sqlCommand.Parameters.AddWithValue("@gender", person.gender);
sqlCommand.Parameters.AddWithValue("@father", person.Father);
sqlCommand.Parameters.AddWithValue("@mother", person.Mother);
sqlConnection.Open();
sqlCommand.ExecuteNonQuery();
}
}
}
}
最终,我想将值添加到数据库中。到目前为止是否正确。我认为不是,已经问过了。我还在上学,没有老师也有困难。预先感谢您的帮助:)
您应该重新设计Person
类以具有要引用的foreign key
。
例如:
public class Person
{
public int PersonId { get; set; }
public string SurName { get; set; }
public string LastName { get; set; }
public DateTime DateOfBirth { get; set; }
public DateTime DateOfDeath { get; set; }
public Gender gender { get; set; }
public int FatherId { get; set; }
public int MotherId { get; set; }
}