如何将数据插入外键表?

时间:2020-01-22 10:04:20

标签: c# sql-server entity-framework foreign-keys

如何将主键插入外键列。

我正在尝试从UserID获取tblUser并将其插入列名为tblPurchasedGames的{​​{1}}中。但是我收到一个错误,可以在代码下面看到。

到目前为止,我已经尝试过:

UserID

错误:

将nvarchar值“ UserID”转换为数据时转换失败 输入int。

表关系图: enter image description here

4 个答案:

答案 0 :(得分:1)

您尝试将参数添加为字符串,但应将其添加为整数

 com.Parameters.AddWithValue("@UserID", UserID);
 com.Parameters.AddWithValue("@GameID", GameID);

编辑:

在这里,我想您有保存着外键值的int变量UserIDGameID

答案 1 :(得分:1)

在下面的部分中,您尝试将字符串插入整数字段:

com.Parameters.AddWithValue("@UserID","UserID");
com.Parameters.AddWithValue("@GameID","GameID");

您可以尝试以下代码

com.Parameters.Add("@UserID",SqlDbType.Int) = yourUserIDVar;
com.Parameters.Add("@GameID",SqlDbType.Int) = yourGameIDVar;

用您要传递给方法的变量替换yourUserIDVaryourGameIdVar

答案 2 :(得分:0)

我很确定您的'UserID'列被标记为varchar,并且您正尝试将其插入到int的tblPurchasedGames'UserID'中

编辑:Miamy的答案可能是正确的

答案 3 :(得分:0)

尝试一下:

 private void Btn_AddToLibary_Click(object sender, RoutedEventArgs e)
        {
            sqlConnection.Open();
            SqlCommand com = new SqlCommand("INSERT into tblPurchasedGames (UserID, GameID)" + "values(@UserID, @GameID)", sqlConnection);
            com.Parameters.AddWithValue("@UserID",UserID.Text);
            com.Parameters.AddWithValue("@GameID",GameID.Text);
            com.ExecuteNonQuery();
            sqlConnection.Close();
        }

您尝试将参数添加为字符串,但应将它们添加为整数: