通过TSQL填充aspnet_Profile表

时间:2011-07-29 05:04:24

标签: asp.net asp.net-membership

我正在尝试通过TSQL从CSV文件或数据库源批量加载aspnet成员。我很满意任何其他选项,即网络应用程序或ssis包。

我面临的问题是每个成员都有自己的个人资料:

  
      
  1. 名字
  2.   
  3. 姓氏
  4.   
  5. 移动
  6.   
  7. 公司添加......等。
  8.   

看起来aspnet配置文件存储为

  

PropertyNames和PropertyValues

在后端aspnet_profile表中。

有人可以建议我如何将员工数据及其个人资料加载到aspnet会员数据库中吗?

感谢。

1 个答案:

答案 0 :(得分:1)

好吧,假设您的问题是如何正确表示配置文件值,这里是它实际存储在数据库中的方式:

aspnet_Profile.PropertyNames 包含配置文件变量名称,相应的存储描述符和值长度,如下所示: [VariableName]:[存储]:[开始]:[长度]:[变量名称] ... 其中

  • [VariableName] - 您的个人资料变量名称
  • [存储] - 一个字符。 B表示二进制,S表示字符串
  • [开始] - 存储字符串或字节数组中的值起始位置
  • [长度] - 值长度

示例:Test1:S:0:10:Test2:B:0:100:Test3:S:10:5:TestDate:S:15:95

aspnet_Profile.ProfileValuesString 包含逐个连接的配置文件值,没有分隔符或其他任何内容。要生成此列值,您实际上不必测量值的长度。从那里读你显然必须。 注意:在序列化为PropertyValuesString时,DateTime值将被包装到XML中。

示例:TestStringABCDE<?xml version =“1.0”encoding =“utf-16”?> <日期时间> 2011-07-29T10:00:28.1603073 + 04:00< /日期时间>

aspnet_Profile.ProfileValuesBinary 与之前的几乎完全相同。除了它的二进制

所以,有了这个说法,你的scenaro将把你的csv数据放到DB的临时表中,然后在它上面运行一个脚本来生成PropertyNames(这里最复杂的部分)和PropertyValuesString(最简单的部分)。就是这样。