Carter Willams
Carter Willams

Reputation: 57

Using Select statement for Insert Statement Value

Can you please help me with this statement, i am trying to retrieve data using SELECT statement and use the date in the INSERT statement.

I want to use the data retrieved for ProfileId Value.

 // Get the UserId of the just-added user
    MembershipUser currentUser = Membership.GetUser();
    Guid currentUserId = (Guid)currentUser.ProviderUserKey;

// Insert a new record into UserPro
string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

string insertSql = "INSERT INTO User_Friend(ProfileId1, ProfileId) VALUES(@FriendProfileId) SELECT ProfileId FROM User_Profile WHERE UserId = (@UserId)";


using (SqlConnection myConnection = new SqlConnection(connectionString))
{
    myConnection.Open();
    SqlCommand myCommand = new SqlCommand(insertSql, myConnection);
    myCommand.Parameters.AddWithValue("@FriendProfileId", Request.QueryString["ProfileId"].ToString());

    myCommand.Parameters.AddWithValue("@UserId", currentUserId);
    myCommand.ExecuteNonQuery();
    myConnection.Close();
}

How do I use the SELECT result as the ProfileId Value.

Upvotes: 3

Views: 87

Answers (2)

competent_tech
competent_tech

Reputation: 44971

The insert SQL should be:

string insertSql = "INSERT INTO User_Friend(ProfileId1, ProfileId) SELECT @FriendProfileId, ProfileId FROM User_Profile WHERE UserId = (@UserId)";

You just include the variables directly in the SELECT statement in the position corresponding to the column name.

Upvotes: 1

Gert Arnold
Gert Arnold

Reputation: 109261

The insert statement should be

INSERT INTO User_Friend(ProfileId1, ProfileId)
VALUES ( @FriendProfileId, 
         (SELECT ProfileId FROM User_Profile WHERE UserId = @UserId))

or maybe SELECT TOP(1) ProfileId to make sure you will never get more than 1 value.

Upvotes: 2

Related Questions