EDIT
It appears the user has to enter some data for his profile, otherwise I get this error below. I guess if there is no profile data, the user can not continue to enter data in other tables by default? I do not want to make entering user profile data a requirement to use the rest of the sites functionality, how can I get around this?
EDIT 2
OK I will try: To DROP a FOREIGN KEY Constraint However, my table doesn’t have a foreign key column….?
Original Question:
Currently I have been testing everything with the same user and everything has been working fine.
However, when I created a new user for the very first time and tried to enter data into my custom table, I get the following error.
The INSERT statement conflicted with
the FOREIGN KEY constraint
“FK_UserData_aspnet_Profile”. The
conflict occurred in database
“C:\ISTATE\APP_DATA\ASPNETDB.MDF”,
table “dbo.aspnet_Profile”, column
‘UserId’. The statement has been
terminated.
Not sure why I am getting this error. I have the user controls set up in ASP.NET 3.5 however all I am using is my own table or at least that I am aware of.
I have a custom UserData table that includes the columns:
id, UserProfileID, CL, LL, SL, DateTime
(id is the auto incremented int) The intent is that all users will add their data in this table and as I mentioned above it has been working fine for my original first user I created. However, when i created a new user I am getting this problem.
Here is the code that updates the database.
protected void Button1_Click(object sender, EventArgs e)
{
//connect to database
MySqlConnection database = new MySqlConnection();
database.CreateConn();
//create command object
Command = new SqlCommand(queryString, database.Connection);
//add parameters. used to prevent sql injection
Command.Parameters.Add("@UID", SqlDbType.UniqueIdentifier);
Command.Parameters["@UID"].Value = Membership.GetUser().ProviderUserKey;
Command.Parameters.Add("@CL", SqlDbType.Int);
Command.Parameters["@CL"].Value = InCL.Text;
Command.Parameters.Add("@LL", SqlDbType.Int);
Command.Parameters["@LL"].Value = InLL.Text;
Command.Parameters.Add("@SL", SqlDbType.Int);
Command.Parameters["@SL"].Value = InSL.Text;
Command.ExecuteNonQuery();
}
Source Error:
Line 84:
Command.ExecuteNonQuery();
Sounds like you have a foreign key constraint between the UserData and Profile tables. When there is not a record in asp_Profile that has a UserID value that equals UserProfileID in your new record in UserData table, you get this error. Not sure what your goal is, but sounds like you should just delete the FK_UserData_aspnet_Profile constraint, and then make UserData.UserProfileID nullable, since there will not always be a record in profile corresponding with your UserData table.