为什么外键在c和mysql之间不起作用?

2ic8powd  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(225)

这个问题在这里已经有答案了

mysql错误1452-无法添加或更新子行:外键约束失败(21个答案)
两年前关门了。
他们之间有权威和援助的关系
我想同时向两个表添加属性
'无法添加或更新子行:外键约束失败( bibliographydb10 . book ,约束 book_ibfk_1 外键( AuthorID )参考文献 author ( AID ))'

public static bool AddNewPackage(BookCitation package)
    {
        MySqlConnection connection = DataAccess.getConnection();

        string insertStatement =
            @"INSERT into Book (
                AuthorName,
                PubYear, 
                BookTitle, 
                PubCity,
                PubName,
                PageNumbers) 
                VALUES (
                @AuthorName,
                @PubYear, 
                @BookTitle, 
                @PubCity,
                @PubName,
                @PageNumbers);
                INSERT into Author (
                AID,
                AuthorNamee,
                Affiliation)
                VALUES (@AID, @AuthorNamee, @Affiliation)";
        MySqlCommand insertCommand = new MySqlCommand(insertStatement, connection);
        insertCommand.Parameters.AddWithValue("@AID", package.AID);
        insertCommand.Parameters.AddWithValue("@AuthorName", package.AuthorName);
        insertCommand.Parameters.AddWithValue("@AuthorNamee", package.AuthorNamee);
        insertCommand.Parameters.AddWithValue("@Affiliation", package.Affiliation);
        insertCommand.Parameters.AddWithValue("@PubYear", package.PublishYear);
        insertCommand.Parameters.AddWithValue("@BookTitle", package.BookTitle);
        insertCommand.Parameters.AddWithValue("@PubCity", package.PublisherCity);
        insertCommand.Parameters.AddWithValue("@PubName", package.Publisher);
        insertCommand.Parameters.AddWithValue("@PageNumbers", package.PageNumbers);

        try
        {
            connection.Open();
            insertCommand.ExecuteNonQuery();
            return true;
        }
        catch (SqlException ex)
        {
            MessageBox.Show(ex.GetType() + ex.Message);
            return false;
        }
        finally
        {
            connection.Close();
        }

    }
public class BookCitation
{
    public int BookCID { get; set; }
    public int AID { get; set; }
    public string AuthorName { get; set; }
    public string AuthorNamee { get; set; }
    public string Affiliation { get; set; }
    public DateTime PublishYear { get; set; }
    public string BookTitle { get; set; }
    public string PublisherCity { get; set; }
    public string Publisher { get; set; }
    public string PageNumbers { get; set; }
}

如何使用外键添加authord?

iyr7buue

iyr7buue1#

错误消息意味着作者必须首先存在。插入新作者,检索该新作者的aid,然后插入新书,将书的aid列设置为与刚插入的新作者的检索aid值相同的值

相关问题