Getting object name instead of value from LDAP queryhttp://forums.asp.net/t/878532.aspx/1?Getting+object+name+instead+of+value+from+LDAP+queryFri, 17 Nov 2006 20:52:35 -0500878532900432http://forums.asp.net/p/878532/900432.aspx/1?Getting+object+name+instead+of+value+from+LDAP+queryGetting object name instead of value from LDAP query After doing a search I located a post with a similar title as above and wanted to create a new post to aid in finding information.&nbsp; <br> <br> Here is the offending code:<br> <br> &lt;code&gt;<br> &nbsp;&nbsp;&nbsp; Sub getEmailList()<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sPath = &quot;LDAP://my.domain.local&quot;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'Setup Datatable<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim table As New DataTable(&quot;Results&quot;)<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.Columns.Add(&quot;Last Name&quot;)<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.Columns.Add(&quot;First Name&quot;)<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.Columns.Add(&quot;Email Address&quot;)<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim row As DataRow<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'Setup AD Query<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim de As New DirectoryServices.DirectoryEntry(sPath, &quot;USERNAME&quot;, &quot;PASSWORD&quot;)<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim dSearch As New DirectoryServices.DirectorySearcher(de, &quot;(&amp;(objectClass=user)(objectCategory=person))&quot;)<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dSearch.PropertiesToLoad.Add(&quot;sn&quot;)<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dSearch.PropertiesToLoad.Add(&quot;givenName&quot;)<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dSearch.PropertiesToLoad.Add(&quot;mail&quot;)<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'Loop and build Table<br> <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim mySearchResult As DirectoryServices.SearchResult<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim mySearchResultColl As DirectoryServices.SearchResultCollection<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim myResultPropColl As DirectoryServices.ResultPropertyCollection<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim myResultPropValueColl As DirectoryServices.ResultPropertyValueCollection<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim propVal() As String<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Dim counter As Integer<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mySearchResultColl = dSearch.FindAll()<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For Each mySearchResult In mySearchResultColl<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; row = table.NewRow()<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; row(&quot;Last Name&quot;) = mySearchResult.Properties(&quot;sn&quot;)<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; row(&quot;First Name&quot;) = mySearchResult.Properties(&quot;givenName&quot;)<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; row(&quot;Email Address&quot;) = mySearchResult.Properties(&quot;mail&quot;)<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; table.Rows.Add(row)<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataSet1.Tables.Add(table)<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataView1.Table = DataSet1.Tables(&quot;Results&quot;)<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'DataView1.Sort = &quot;Last Name&quot;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'Databind to dataset.<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataGrid1.DataSource = DataSet1<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DataGrid1.DataBind()<br> &nbsp;&nbsp;&nbsp; End Sub<br> &lt;/code&gt;<br> <br> When I run this, the DataGrid is populated, but all I see is: System.DirectoryServices.ResultPropertyValueCollection in the three columns.&nbsp; When I change:<br> &lt;code&gt;<br> mySearchResult.Properties(&quot;sn&quot;)<br> &lt;/code&gt;<br> to this:<br> &lt;code&gt;<br> mySearchResult.Properties(&quot;sn&quot;)(0).ToString()<br> &lt;/code&gt;<br> <br> I get the following error:<br> <br> System.NullReferenceException: Object reference not set to an instance of an object.<br> <br> &nbsp; I only want those three properties of the user to show up in the DataGrid and nothing else.&nbsp; Am I getting this error because I need to loop through the Properties?&nbsp; If so, how do I do this?&nbsp; I have tried using a counter with a Do While, counter = counter &#43;1 but get the same Object reference error as above.&nbsp; <br> <br> Any assistance would be greatly appreciated.<br> 2005-04-20T19:30:53-04:00902089http://forums.asp.net/p/878532/902089.aspx/1?Re+Getting+object+name+instead+of+value+from+LDAP+queryRe: Getting object name instead of value from LDAP query Anyone?&nbsp; This is a current project so any help would be nice!<br> 2005-04-21T20:06:38-04:00902245http://forums.asp.net/p/878532/902245.aspx/1?Re+Getting+object+name+instead+of+value+from+LDAP+queryRe: Getting object name instead of value from LDAP query You just need to check if the value exists first.&nbsp; It would be something like this:<br> <br> <font face="Courier New" size="2">if (sr.Properties.Contains(&quot;attribute))<br> {<br> &nbsp;&nbsp;&nbsp; //safe to access now<br> &nbsp;&nbsp;&nbsp; sr.Properties[&quot;attribute&quot;][0].ToString();<br> }</font><br> <br> The 'null' reference occurs when the attribute is not on the object.&nbsp; I would suggest defining the attributes you are after in a string array and then applying the pattern above in a loop as you iterate over the string array.&nbsp; A full example of this that generically builds DataSets was available in an older post that looks to have been archived now.&nbsp; I will include the code for it here so we can build the knowledge again.&nbsp; Use your favorite translator for VB.NET:<br> <br> <font face="Courier New" size="2">public DataSet FindUsers(string sFilter, string[] columns, string path, bool useCached)<br> {<br> &nbsp;&nbsp;&nbsp; //try to retrieve from cache first<br> &nbsp;&nbsp;&nbsp; HttpContext context = HttpContext.Current;<br> &nbsp;&nbsp;&nbsp; DataSet userDS = (DataSet)context.Cache[sFilter];<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br> &nbsp;&nbsp;&nbsp; if((userDS == null) || (!useCached))<br> &nbsp;&nbsp;&nbsp; {<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //setup the searching entries<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; DirectoryEntry deParent = new DirectoryEntry(path);<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //deParent.Username = Config.Settings.UserName;<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //deParent.Password = Config.Settings.Password;<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; deParent.AuthenticationType = AuthenticationTypes.Secure;<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; DirectorySearcher ds = new DirectorySearcher(deParent,sFilter,columns);<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ds.PageSize = 1000;<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; using(deParent)<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //setup the dataset that will store the results<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; userDS = new DataSet(&quot;userDS&quot;);<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; DataTable dt = userDS.Tables.Add(&quot;users&quot;);<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; DataRow dr;<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //add each parameter as a column<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; foreach(string prop in columns)<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; dt.Columns.Add(prop, typeof(string));<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br> <br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; using (SearchResultCollection src = ds.FindAll())<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach(SearchResult sr in src)<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dr = dt.NewRow();<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach(string prop in columns)<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if(sr.Properties.Contains(prop))<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dr[prop] = sr.Properties[prop][0];<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dt.Rows.Add(dr);<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; //cache it for later, with sliding 3 minute window<br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; context.Cache.Insert(sFilter, userDS, null, DateTime.MaxValue, TimeSpan.FromSeconds(180));<br> &nbsp;&nbsp;&nbsp; }<br> &nbsp;&nbsp;&nbsp; return userDS;<br> }</font> <br> <br> Now, just place a datagrid on your page, and with a few lines of code, you have a searcher:<br> <br> <font face="Courier New" size="2">//sample use<br> string qry = String.Format(&quot;(&amp;(objectCategory=person)(givenName={0}*))&quot;, txtFirstName.Text);<br> string[] columns = new string[]{&quot;givenName&quot;, &quot;sn&quot;, &quot;cn&quot;, &quot;sAMAccountName&quot;, &quot;telephoneNumber&quot;, &quot;l&quot;}<br> string ldapPath = &quot;LDAP://dc=mydomain&quot;;<br> <br> DataSet ds = FindUsers(qry, columns, ldapPath, true);<br> DataGrid1.DataSource = ds;<br> DataGrid1.DataBind();</font> <br> <br> If you were really clever, you would dynamically create the ldap query and just keep passing in a new one.&nbsp; Alternatively, you could get some good performance wins by using a larger filter result set and caching the DataSet from the method (longer than 3 minutes hopefully), and then using the DataView.RowFilter to filter the cached DataSet before binding to DataGrid.&nbsp; It would then never need to talk to AD again until you wanted to invalidate the cache.<br> <br> <br> 2005-04-21T22:45:04-04:00902248http://forums.asp.net/p/878532/902248.aspx/1?Re+Getting+object+name+instead+of+value+from+LDAP+queryRe: Getting object name instead of value from LDAP query Bleh that post turned out rather interesting.<br> <br> The goal is for a user to go to the web page and see the most uptodate information on the Email addresses listed in Active Directory.&nbsp; So basically the page needs to iterate through all of the OUs and list out every single user's First Name, Last Name, and Email Address.&nbsp; I guess I'll have to fish through the code you posted and figure out how to translate it into VB.NET using VS.NET2003.<br> <br> Thanks for the help I'll see what I can do.<br> 2005-04-21T22:50:15-04:00902269http://forums.asp.net/p/878532/902269.aspx/1?Re+Getting+object+name+instead+of+value+from+LDAP+queryRe: Getting object name instead of value from LDAP query There are a number of translators that will convert that for you.&nbsp; To do what you want using the FindUsers() method as I presented it, you would do this:<br> <br> <span id="PostFlatView">//sample use<br> string qry = &quot;(&amp;(objectCategory=person)(objectClass=user)&quot;; //all users<br> string[] columns = new string[]{&quot;givenName&quot;, &quot;sn&quot;, &quot;mail&quot;}; //first, last, email<br> string ldapPath = &quot;LDAP://dc=mydomain,dc=com&quot;; //point to your root domain to get all users<br> <br> //hope you are using Paging in your DataGrid - this could be big!!<br> DataSet ds = FindUsers(qry, columns, ldapPath, true);<br> DataGrid1.DataSource = ds;<br> DataGrid1.DataBind();</span><br> <br> Easy 'nuf.<br> <br> 2005-04-21T23:16:17-04:00908474http://forums.asp.net/p/878532/908474.aspx/1?Re+Getting+object+name+instead+of+value+from+LDAP+queryRe: Getting object name instead of value from LDAP query dunnry, <br> <br> Thank you again for your post.&nbsp; I was able to get the necessary information from AD thanks to your code.&nbsp; I do have a couple more questions though:<br> <br> 1.&nbsp; At what point in the code can I sort the results by givenName?&nbsp; I get the list with several blank entries where there is an sn, givenName, but no email address (none was entered in AD).&nbsp; Can I sort these results by givenName so I can determine who has addresses and who doesn;t?<br> <br> 2.&nbsp; In your code you use &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br> &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 'deParent.Username = Config.Settings.UserName;<br> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 'deParent.Password = Config.Settings.Password;<br> I'm assuming this information is being pulled from the web.config file.&nbsp; Do you perchance know the syntax inside the web.config file where I need to put this?<br> <br> Thanks!<br> 2005-04-27T15:08:46-04:00908602http://forums.asp.net/p/878532/908602.aspx/1?Re+Getting+object+name+instead+of+value+from+LDAP+queryRe: Getting object name instead of value from LDAP query Got the answer to my first question already:<br> <br> Added the following:<br> <br> &nbsp;'**********************************************<br> 'Sort the list by givenName (First Name)<br> &nbsp;'Other options are: sn, mail<br> ds.Sort.PropertyName = &quot;givenName&quot;<br> <br> <br> I also found the answer to another question.&nbsp; It appears that with LDAP you can't tell the query to NOT include NULL values.&nbsp; For example, if I query AD for all users, and get accounts that do not have a value for sn, I am unable to specify the following:<br> <br> !sn=null or \00<br> <br> You can only query for attributes that MUST have a value:<br> <br> sn=*<br> <br> The above will only return results where sn has a value.<br> <br> 2005-04-27T16:32:19-04:001425631http://forums.asp.net/p/878532/1425631.aspx/1?Re+Getting+object+name+instead+of+value+from+LDAP+queryRe: Getting object name instead of value from LDAP query <p>[quote user=&quot;dunnry&quot;]There are a number of translators that will convert that for you.&nbsp; To do what you want using the FindUsers() method as I presented it, you would do this:<br> <br> <span id="PostFlatView">//sample use<br> string qry = &quot;(&amp;(objectCategory=person)(objectClass=user)&quot;; //all users<br> string[] columns = new string[]{&quot;givenName&quot;, &quot;sn&quot;, &quot;mail&quot;}; //first, last, email<br> string ldapPath = &quot;LDAP://dc=mydomain,dc=com&quot;; //point to your root domain to get all users<br> <br> //hope you are using Paging in your DataGrid - this could be big!!<br> DataSet ds = FindUsers(qry, columns, ldapPath, true);<br> DataGrid1.DataSource = ds;<br> DataGrid1.DataBind();</span><br> <br> Easy 'nuf.<br> <br> </p> <blockquote></blockquote> <p></p> <p>Do I have to know exactly what the objectCategory, objectClass, givenName, sn, and mail to use the FindUsers? I tried it and I got this error.</p> <p><span></p> <h2><em>The (&amp;(objectCategory=person)(objectClass=user) search filter is invalid.</em> </h2> </span><font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif "><strong>Description: </strong>An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. <br> <br> <strong>Exception Details: </strong>System.ArgumentException: The (&amp;(objectCategory=person)(objectClass=user) search filter is invalid.<br> <br> <strong>Source Error:</strong> <br> <br> <table bgcolor="#ffffcc" width="100%"> <tbody> <tr> <td> <pre>Line 56: using (SearchResultCollection src = ds.FindAll())<br>Line 57: {<br><font color="red">Line 58: foreach (SearchResult sr in src)<br></font>Line 59: {<br>Line 60: dr = dt.NewRow();</pre> </td> </tr> </tbody> </table> </font>&nbsp; <p></p> <p>If I do, how do I find those out?&nbsp;</p> 2006-10-11T19:45:06-04:001427914http://forums.asp.net/p/878532/1427914.aspx/1?Re+Getting+object+name+instead+of+value+from+LDAP+queryRe: Getting object name instead of value from LDAP query Any other idea? Help is still needed.<br> 2006-10-13T12:42:14-04:001469155http://forums.asp.net/p/878532/1469155.aspx/1?Re+Getting+object+name+instead+of+value+from+LDAP+queryRe: Getting object name instead of value from LDAP query <p>i tried using your code but but iam getting an error</p> <p>Error&nbsp;1&nbsp;'FindUsers': member names cannot be the same as their enclosing type.</p> <p>&nbsp;What might be the problem??<br> </p> 2006-11-17T18:01:59-05:001469371http://forums.asp.net/p/878532/1469371.aspx/1?Getting+LDAP+entries+into+a+gridviewGetting LDAP entries into a gridview <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'">Iam new to asp.net and Iam trying to bring&nbsp;my LDAP values on to a grid view. When I run my application iam not able to&nbsp;see the grid (the page turns up empty) what could be the possible&nbsp;reason??&nbsp;</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'">&nbsp;</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'">&nbsp;</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; color:blue; font-family:'Courier New'">public</span><span style="font-size:10pt; font-family:'Courier New'"> <span style="color:teal">DataSet</span> Userlogin(<span style="color:blue">string</span> sFilter, <span style="color:blue">string</span>[] columns, <span style="color:blue">string</span> path, <span style="color:blue">bool</span> useCached)</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp; </span>{</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green">// trying to retrieve data from cache</span></span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue">string</span> ulid = Session[<span style="color:maroon">&quot;id&quot;</span>].ToString();</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue">string</span> password = Session[<span style="color:maroon">&quot;password&quot;</span>].ToString();</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:teal">HttpContext</span> context = <span style="color:teal"> HttpContext</span>.Current;</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:teal">DataSet</span> usersDS = (<span style="color:teal">DataSet</span>)context.Cache[sFilter];</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue">if</span> ((usersDS == <span style="color:blue">null</span>) || (!useCached))</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green">//setup searching entries</span></span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:teal">DirectoryEntry</span> deParent = <span style="color:blue"> new</span> <span style="color:teal">DirectoryEntry</span>(path, ulid, password);</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>deParent.AuthenticationType = <span style="color:teal">AuthenticationTypes</span>.Secure;</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:teal">DirectorySearcher</span> ds = <span style="color:blue"> new</span> <span style="color:teal">DirectorySearcher</span>(deParent, sFilter, columns);</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>ds.PageSize = 1000;</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue">using</span> (deParent)</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green">//setup dataset that will store the results</span></span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>usersDS = <span style="color:blue">new</span> <span style="color:teal">DataSet</span>(<span style="color:maroon">&quot;userDS&quot;</span>);</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:teal">DataTable</span> dt = usersDS.Tables.Add(<span style="color:maroon">&quot;users&quot;</span>);</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:teal">DataRow</span> dr;</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green">// adding each property as a column</span></span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color:blue">foreach</span> (<span style="color:blue">string</span> prop <span style="color:blue">in</span> columns)</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>dt.Columns.Add(prop, <span style="color:blue">typeof</span>(<span style="color:blue">string</span>));</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue">using</span> (<span style="color:teal">SearchResultCollection</span> src = ds.FindAll())</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue">foreach</span> (<span style="color:teal">SearchResult</span> sr <span style="color:blue">in</span> src)</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>dr = dt.NewRow();</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue">foreach</span> (<span style="color:blue">string</span> prop <span style="color:blue">in</span> columns)</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>{</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue">if</span> (sr.Properties.Contains(prop))</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span>{</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>dr[prop] = sr.Properties[prop][0];</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>dt.Rows.Add(dr);</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'">&nbsp;</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:green">// cache it for later, with 3 minutes sliding window</span></span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>context.Cache.Insert(sFilter, usersDS, <span style="color:blue">null</span>, <span style="color:teal">DateTime</span>.MaxValue, <span style="color:teal">TimeSpan</span>.FromSeconds(180));</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>}</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue">return</span> usersDS;</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp; </span>}</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp; </span><span style="color:blue">protected</span> <span style="color:blue">void</span> Page_Load(<span style="color:blue">object</span> sender, <span style="color:teal">EventArgs</span> e)</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp; </span>{</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp; </span></span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>lblulid.Text = Session[<span style="color:maroon">&quot;id&quot;</span>].ToString();</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue">string</span> username = Session[<span style="color:maroon">&quot;id&quot;</span>].ToString();</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue">string</span> query = <span style="color:maroon"> &quot;(|(cn=&quot;</span> &#43; username &#43; <span style="color:maroon">&quot;) (userPrincipalName= &quot;</span> &#43; username &#43; <span style="color:maroon">&quot;ad.ilstu.edu))&quot;</span>;</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue">string</span>[] columns = <span style="color:blue"> new</span> <span style="color:blue">string</span>[] { <span style="color:maroon"> &quot;givenname&quot;</span>, <span style="color:maroon">&quot;sn&quot;</span>, <span style="color:maroon"> &quot;physicalDeliveryOfficeName&quot;</span>, <span style="color:maroon">&quot;telephoneNumber&quot;</span>, <span style="">&nbsp;</span><span style="color:maroon">&quot;mail&quot;</span>, <span style="color:maroon"> &quot;cn&quot;</span> };</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:blue">string</span> ldapPath = <span style="color:maroon"> &quot;LDAP:// &quot;</span>;</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>GridView1.Visible = <span style="color:blue">true</span>;</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:teal">DataSet</span> ds = Userlogin(query, columns, ldapPath, <span style="color:blue">true</span>);</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>GridView1.DataSource = ds;</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>GridView1.DataBind();</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp; </span>}</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'">&nbsp;</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'">&nbsp;</span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp; </span><span style="color:blue">&lt;</span><span style="color:maroon">asp</span><span style="color:blue">:</span><span style="color:maroon">GridView</span> <span style="color:red">ID</span><span style="color:blue">=&quot;GridView1&quot;</span> <span style="color:red"> runat</span><span style="color:blue">=&quot;server&quot;</span> <span style="color:red">AllowPaging</span><span style="color:blue">=&quot;True&quot;</span> <span style="color:red">AllowSorting</span><span style="color:blue">=&quot;True&quot;</span></span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:red">AutoGenerateColumns</span><span style="color:blue">=&quot;true&quot;</span> <span style="color:red">CellPadding</span><span style="color:blue">=&quot;4&quot;</span> <span style="color:red"> ForeColor</span><span style="color:blue">=&quot;#333333&quot;</span> <span style="color:red"> GridLines</span><span style="color:blue">=&quot;None&quot;</span></span></p> <p class="MsoNormal" style="margin:0in 0in 0pt"><span style="font-size:10pt; font-family:'Courier New'"><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="color:red">Style</span><span style="color:blue">=&quot;z-index: 100; left: 161px; position: absolute; top: 211px&quot;</span> <span style="color:red">EnableViewState</span><span style="color:blue">=&quot;true&quot;</span> <span style="color:blue">&gt;</span></span></p> 2006-11-17T20:52:35-05:00