2015-02-23 143 views
0

我创建了Intranet项目,它连接AD检索用户的 数据为图像部门。我做了我的代码,它运作良好,但我有很多次下面的错误 。错误SQL数据读取器

enter image description here

string User = ConfigurationManager.AppSettings["User"]; 
      string Password = ConfigurationManager.AppSettings["Password"]; 
      var entry = new DirectoryEntry("LDAP://" + "xxxxx", User, Password); 

      DirectorySearcher searcher = new DirectorySearcher(entry); 
      searcher.SearchScope = SearchScope.Subtree; 
      string UserName = Page.User.Identity.Name; 
      searcher.Filter = string.Format(CultureInfo.InvariantCulture, "(sAMAccountName={0})", UserName.Split('\\')[1]); 
      SearchResult findUser = searcher.FindOne(); 
      if (findUser != null) 
      { 
       DirectoryEntry user = findUser.GetDirectoryEntry(); 
       //string loginuser = user.Properties["UserName"].Value.ToString(); 
       LoggedUser = user.Properties["displayName"].Value.ToString(); 
       Session.Add("LoggedUser", LoggedUser); 
       LoggedEmail = user.Properties["mail"].Value.ToString(); 
       Session.Add("LoggedEmail", LoggedEmail); 
       string Mobile = user.Properties["Mobile"] != null && user.Properties["Mobile"].Value != null ? user.Properties["Mobile"].Value.ToString() : null; 
       string Login = user.Properties["sAMAccountName"].Value.ToString(); 
       if (user.Properties["Department"].Value != null) 
        LoggedDepartement = user.Properties["Department"].Value.ToString(); 
       _userDept = user.Properties["Department"].Value != null ? user.Properties["Department"].Value.ToString() : ""; 
       ftier.AddLoggedUser(LoggedUser, LoggedDepartement, title, LoggedEmail, data, DateTime.Now, DateTime.Now, " nnnnn", true); 
+0

这是'checkUser()'的整个代码吗? – rikitikitik 2015-02-23 10:14:26

+0

@rikitikitik正好 – Myworld 2015-02-23 22:45:10

回答

0

当我在的问题,过去一个这样做是在用户对象的属性不同寻常的人物造成这种错误。

一种方法是对你设置的每个变量进行错误检查,以便代码可以继续工作,或者将所有数据导出到文本文件,并使用excel通过它并查找异常或奇怪的控制字符。

如果错误总是发生在某个人身上,那么您可以查看该用户的属性并希望以这种方式找到问题。

我们的问题是在一些字段中使用中文简体字符。

希望这可以帮助你追踪你的问题。

Dorje