Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#GUID和SQL Server Uniqueidentifier转换_C#_Asp.net_Sql Server_Asp.net Mvc - Fatal编程技术网

C#GUID和SQL Server Uniqueidentifier转换

C#GUID和SQL Server Uniqueidentifier转换,c#,asp.net,sql-server,asp.net-mvc,C#,Asp.net,Sql Server,Asp.net Mvc,我试图画一个google图表,我肯定是通过存储过程从我的SQL Server数据库获取数据,但是我在使用UserID参数时遇到了困难,因为它是唯一的标识符。如果我使用activityID参数,它是一个int,那么一切都很好。您能指导我如何将我的用户ID唯一标识符转换为int吗 存储过程: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[rpGetUserActivities] (--@Use

我试图画一个google图表,我肯定是通过存储过程从我的SQL Server数据库获取数据,但是我在使用
UserID
参数时遇到了困难,因为它是唯一的标识符。如果我使用
activityID
参数,它是一个
int
,那么一切都很好。您能指导我如何将我的
用户ID
唯一标识符转换为int吗

存储过程:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[rpGetUserActivities]
    (--@UserID uniqueidentifier, <----- I would like to use this
     @ActivityID INT)
AS   
BEGIN  
    SELECT  
        [UserID],
        [ActivityID],
        [Title],
        [DateCreated]
    FROM 
        [DB].[dbo].[DB_Activity]
    WHERE 
        [DateCreated] IS NOT NULL  
        AND [ActivityID] = @ActivityID
        -- [UserID] = @UserID <----- I would like to use this
END 
将ANSI_空值设置为ON
去
在上设置带引号的\u标识符
去
ALTER过程[dbo].[rpGetUserActivities]
(-@UserID uniqueidentifier,name.ToLower()==objProperty.name.ToLower());
如果(!string.IsNullOrEmpty(columnname))
{
值=行[columnname].ToString();
如果(!string.IsNullOrEmpty(值))
{
if(Nullable.GetUnderlineType(objProperty.PropertyType)!=null)
{
value=row[columnname].ToString().Replace(“$”,”).Replace(“,”,”);
objProperty.SetValue(obj,Convert.ChangeType(value,Type.GetType(Nullable.getUnderlineType(objProperty.PropertyType.ToString())),null);
}
其他的
{
值=行[columnname].ToString();
SetValue(obj,Convert.ChangeType(value,Type.GetType(objProperty.PropertyType.ToString()),null);
}
}
}
}
返回obj;
}
捕获(例外情况除外)
{
返回obj;
}
}
/// 
///此构造函数用于从配置文件获取连接字符串
/// 
公共rpusersAction()
{
ConnectionString=ConfigurationManager.ConnectionString[“connName”].ToString();
}
/// 
///此方法用于获取所有用户
/// 
/// 
公共列表GetrpusersDetails()
{
List objrpusers=null;
objDB=新的SqlDatabase(ConnectionString);
使用(DbCommand objcmd=objDB.GetStoredProcCommand(“rpGetUsers”))
{
尝试
{
使用(DataTable DataTable=objDB.ExecuteDataSet(objcmd.Tables[0])
{
objrpusers=ConvertTo(数据表);
}
}
捕获(例外情况除外)
{
掷骰子;
返回null;
}
}
返回对象;
}
/// 
///此方法用于根据用户ID获取播放器记录
/// 
///我正在使用INT进行测试
公共列表rpGetUserActivities(Int16?ActivityID)
{
List objrpusersRecords=null;
objDB=新的SqlDatabase(ConnectionString);
使用(DbCommand objcmd=objDB.GetStoredProcCommand(“rpGetUserActivities”))
{
objDB.AddInParameter(objcmd,“@ActivityID”,DbType.Int64,ActivityID);
尝试
{
使用(DataTable DataTable=objDB.ExecuteDataSet(objcmd.Tables[0])
{
objrpusersRecords=ConvertTo(数据表);
}
}
捕获(例外情况除外)
{
掷骰子;
返回null;
}
}
返回OBJRPUSERS记录;
}
}
}

再次感谢你

您可以将唯一标识符转换为int。只需添加
UserId
参数作为唯一标识符即可

var userId = new Guid("96d5b379-7e1d-4dac-a6ba-1e50db561b04");
objDB.AddInParameter(objcmd, "@UserID", SqlDbType.UniqueIdentifier, userId);

在每次调用中,如果要传递新的GUID,则可以使用

var userID = Guid.NewGuid();   // Always returns a new GUID

objDB.AddInParameter(objcmd, "@UserID", SqlDbType.UniqueIdentifier, userId);

注意:GUID在空间和时间上总是唯一的

谢谢,var userId=新GUID(“96d5b379-7e1d-4dac-a6ba-1e50db561b04”);没有,我只是提供了一个样品。您应该将参数作为Guid而不是字符串传递,以便将字符串作为Guid解析。
var userID = Guid.NewGuid();   // Always returns a new GUID

objDB.AddInParameter(objcmd, "@UserID", SqlDbType.UniqueIdentifier, userId);