0

它工作正常并插入我的第一个表值

SqlCommand command = new SqlCommand("INSERT INTO Author (LastName, FirstName, MiddleName,BirthDate)VALUES(@LastName, @FirstName, @MiddleName,@BirthDate);SELECT SCOPE_IDENTITY()", _connection);
command.Parameters.AddWithValue("@LastName", LastNameTextBox.Text);
command.Parameters.AddWithValue("@FirstName", FirstNameTextBox.Text);
command.Parameters.AddWithValue("@MiddleName", MiddleNameTextBox.Text);
command.Parameters.AddWithValue("@BirthDate", BirthDateTextBox.Text);
string authoriD = command.ExecuteScalar().ToString();

在这里我有问题,无法解决

SqlCommand commandB = new SqlCommand("INSERT INTO Book(AuthorID,Book,Genre,Pages)VALUES(@AuthorID,@Book,@Genre,@Pages)", _connection);
commandB.Parameters.AddWithValue("@AuthorID", authoriD);

for (int i = 0; i < AddBooks.BookTextBoxValue.Count; i++)
{
    commandB.Parameters.AddWithValue("@Book", AddBooks.BookTextBoxValue[i]);
}

foreach (string itemgenre in AddBooks.GenreTextBoxValue)
{
    commandB.Parameters.AddWithValue("@Genre", itemgenre);
}

foreach (string itempages in AddBooks.PagesTextBoxValue)
{
    commandB.Parameters.AddWithValue("@Pages", itempages);
}

commandB.ExecuteNonQuery();
4

1 回答 1

0

对于每个作者,他/她写的书都有流派等……所以你应该只有一个 for 循环。您的代码流应该是这样的:

for(...)
{
//insert into Book (author, book, genre, pages)
}

您的Book author 字段是Author表的外键。一个作者可以有许多书面书籍,因此您的Book表必须有多个条目用于单个作者。你的Book表应该有这样的内容(按顺序:作者、书籍、流派、页面):

  • 你, MyNewBook, Genre1, 10
  • You, MyOldBook, Genre2, 20,
  • You, MyNotSoNewBook, Genre1, 100
  • You, MyVeryNiceBook, Genre1, 1000
于 2013-06-30T13:23:38.123 回答