将GUID参数传递给SQL函数,该函数接受c#中的Guid参数

时间:2015-04-12 08:47:13

标签: c# sql asp.net

我使用session来获取上一页的值。即UserId然后尝试将此值传递给SQL的GetDataByUserId(@guidparam)函数。然后将检索到的值传递给网格视图,如下所述。

错误:

  

无法启用约束。一行或多行包含违反非null,唯一或外键约束的值。

请帮我解决这个问题。

protected void Page_Load(object sender, EventArgs e)
{
    if (!this.IsPostBack)
    {
        DSRolesTableAdapters.aspnet_RoleUsersTableAdapter userRoleAdapter = new DSRolesTableAdapters.aspnet_RoleUsersTableAdapter();

        DataTable dt = new DataTable();

        Guid user = Guid.NewGuid();
        user = Guid.Parse(Session["UserId"] as string);

        dt = userRoleAdapter.GetDataByUserId(user);//Error at this line

        UserRolesGrdView.DataSource = dt;
        UserRolesGrdView.DataBind(); 
    }
}

1 个答案:

答案 0 :(得分:0)

这对于一个通讯网来说有点长。

问题在于您Datatable返回的userRoleAdapter.GetDataByUserId,您已在其上定义了一些uniquenot null约束,这些约束与您要检索的数据不兼容从数据库中,我的意思是在填充datatable一些违反这些约束的数据时,程序会给出错误。删除DataTable上没有必需的非null和唯一约束(设置allow null=trueis unique=false),它将被修复。

注意:此外,数据表的number of fieldslengthdatatype字段应与您尝试填充数据表的数据兼容用。