简体   繁体   English

使用Select语句插入语句值

[英]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. 你能帮我解释一下这个陈述,我试图用SELECT语句检索数据并使用INSERT语句中的日期。

I want to use the data retrieved for ProfileId Value. 我想使用为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. 如何将SELECT结果用作ProfileId值。

The insert statement should be insert语句应该是

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. 或者SELECT TOP(1) ProfileId以确保您永远不会获得超过1的值。

The insert SQL should be: 插入SQL应该是:

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. 您只需将变量直接包含在SELECT语句中与列名对应的位置。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM