将数据插入Access数据库时出错

时间:2012-11-08 09:08:27

标签: c# asp.net ms-access

我正忙于学校作业,我有一个由三个表组成的基本访问数据库。 Book,Reader和BookRated,其中BookRated是与主键的交集表,来自Reader的userName和来自Book的ISBN构成了BookRated的复合主键(作为外键)。

我正在尝试将信息插入BookRated表,但会收到以下错误

  
    

System.Data.OleDb.OleDbException:您无法添加或更改记录,因为表'Book'中需要相关记录。

  
bool added;

    int i;
    conn = new OleDbConnection(@"Provider=Microsoft.Jet.OleDb.4.0;
                                Data Source =" + Server.MapPath("App_Data\\BookRateInitial.mdb"));
    conn.Open();

    OleDbCommand cmd2 = conn.CreateCommand();
    cmd2.CommandText = @"INSERT INTO bookRated([frnISBN], [title], [rating], [review], [frnUserName])
                      VALUES(@ISBN, @title, @rating, @review, @userName)";
        //adding my parameters
    cmd2.Parameters.AddRange(new OleDbParameter[]
    {
        new OleDbParameter("@title", bookTitle),
        new OleDbParameter("@rating", rating),
        new OleDbParameter("@review", review), 
        new OleDbParameter("@ISBN", isbn), 
        new OleDbParameter("@userName", userName),
    });
    added = true;
    i = cmd2.ExecuteNonQuery();
    conn.Close();
    return added;

现在所有的值都是字符串。

或许有关此错误来自何处的建议?

1 个答案:

答案 0 :(得分:1)

检查表relationship的{​​{1}}。有关此错误的详细信息,请查看Microsoft Support Site