如何将主键插入外键列。
我正在尝试从UserID
获取tblUser
并将其插入列名为tblPurchasedGames
的{{1}}中。但是我收到一个错误,可以在代码下面看到。
到目前为止,我已经尝试过:
UserID
错误:
将nvarchar值“ UserID”转换为数据时转换失败 输入int。
答案 0 :(得分:1)
您尝试将参数添加为字符串,但应将其添加为整数:
com.Parameters.AddWithValue("@UserID", UserID);
com.Parameters.AddWithValue("@GameID", GameID);
编辑:
在这里,我想您有保存着外键值的int变量UserID
和GameID
。
答案 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;
用您要传递给方法的变量替换yourUserIDVar
和yourGameIdVar
。
答案 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();
}
您尝试将参数添加为字符串,但应将它们添加为整数: