如何将SqlDbType.UniqueIdentifier分配给字符串?

时间:2011-01-01 00:31:18

标签: c# asp.net sql string asp.net-membership

   //Retrieve data to display
   string queryString2 = "SELECT [ConfidenceLevel], [LoveLevel], [StressLevel] FROM [UserData] WHERE ([UserProfileID] = @UserProfileID) ORDER BY [DateTime] ASC";
   SqlCommand CommandSelect = new SqlCommand(queryString2, database.Connection);

   //add parameters. used to prevent sql injection
   CommandSelect.Parameters.Add("@UserProfileID", SqlDbType.UniqueIdentifier);
   CommandSelect.Parameters["@UserProfileID"].Value = Membership.GetUser().ProviderUserKey;

所以在最后,我不想使用“Membership.GetUser()。ProviderUserKey”,而是使用动态成员ID,我只能使用GET名称值对中的字符串。

即。 - string id =“a051fc1b-4f51-485b-a07d-0f378528974e”

如何将此字符串分配给分配值的最后一个SQL参数行?输入吗?

如果我只是给它分配字符串我收到错误:

  

从'System.String'转换为无效   '的System.Guid'。

谢谢。

2 个答案:

答案 0 :(得分:4)

CommandSelect.Parameters["@UserProfileID"].Value = 
                                     new Guid(ship.GetUser().ProviderUserKey);

答案 1 :(得分:2)

请参阅System.Guid的文档。在那里你会找到一个构造函数,它接受一个字符串值,并创建一个Guid结构。