Makale numarası: 310207 - Son Gözden Geçirme: 29 Kasım 2007 Perşembe - Gözden geçirme: 3.3

Visual C# kullanarak bir klasördeki öğeleri aramak için ADO ve Exchange 2000 OLE DB Sağlayıcısı'nı kullanma

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.
Dikkat ADO ve ADO MD tam olarak bir Microsoft .NET Framework ortamında sınanmamıştır. Özellikle de hizmet tabanlı veya çok iş parçacıklı uygulamalarda zaman zaman sorunlara neden olabilirler. Bu makalede açıklanan teknikler ADO.NET'e geçiş sırasında yalnızca geçici bir önlem olarak kullanılmalıdır. Bu teknikler, yalnızca hiçbir uyumluluk sorunları olduğundan emin olmak için tam sınama gerçekleştirip sonra kullanmalısınız. ADO veya ADO MD bu şekilde kullanımından kaynaklanan sorunlar desteklenmez. Daha fazla bilgi için, aşağıdaki Microsoft Bilgi Bankası makalesine bakın:
840667   (http://support.microsoft.com/kb/840667/ ) Bir .NET Framework uygulamasında ADO ve ADO MD kullanırken beklenmedik bir hata alıyorsunuz
Hepsini aç | Hepsini kapa

Özet

Bu makalede, Microsoft Visual C# .NET veya Microsoft Visual C# 2005 kullanarak bir klasördeki öğeleri aramak için ActiveX Data Objects (ADO) ve Microsoft Exchange 2000 Server OLE DB sağlayıcısı kullanmayı açıklamaktadır.

Daha fazla bilgi

  1. Microsoft Visual Studio 2005 ya da Microsoft Visual Studio. NET'i başlatın.
  2. Dosya menüsünde Yeni ' nin üzerine gelin ve sonra Project ' i tıklatın.
  3. Visual C# Projects türleri listesinde Konsol uygulaması) tıklatın. Varsayılan olarak, Class1.cs dosyası oluşturulur.

    Not Microsoft Visual C# 2005'te, Visual C# ' ı tıklatın. Varsayılan olarak, program.cs dosyası oluşturulur.
  4. Bir Microsoft ActiveX Data Objects 2.5 Kitaplığı başvurusu ekleyin. Bunu yapmak için şu adımları izleyin:
    1. Proje) menüsünde Add Reference ' ı tıklatın.
    2. COM</a0> sekmesini tıklatın, ActiveX Data Objects 2.5 Kitaplığı ' nı bulun ve sonra da <a2>Seç</a2>'i tıklatın.

      Not Microsoft Visual C# 2005, Seç ' i gerekmez.
    3. Başvuru Ekle iletişim kutusunda, <a3>Tamam</a3>'ı tıklatın.
    4. Seçtiğiniz kitaplıklar için sar?c?lar? oluşturmak isteyip istemediğiniz sorulursa, Evet'i tıklatın.
  5. Kod penceresinde kodu aşağıdaki ile Değiştir:
    using System;
    
    namespace Samples
    {
    	class Class1
    	{
    		static void Main(string[] args)
    		{
    			try 
    			{
    			ADODB.Connection oCn = new ADODB.Connection();
    			ADODB.Recordset oRs = new ADODB.Recordset();
    			
    
    			ADODB.Fields oFields;
    			ADODB.Field oField;
    
                            // TODO: Replace with your folder's URL.
    			string sFdUrl = "http://ExchServer/Exchange/UserAlias/Inbox";
    			
    			oCn.Provider = "exoledb.datasource";
    			oCn.Open(sFdUrl, "", "", -1);  
    
    			if(oCn.State == 1)
    			{
    				Console.WriteLine("Good Connection");
    			}
    			else
    			{
    				Console.WriteLine("Bad Connection");
    			}
    
    
    			string strSql;
    			strSql = "";
    			strSql = "select ";
    			strSql = strSql + " \"urn:schemas:mailheader:content-class\"";
    			strSql = strSql + ", \"DAV:href\" ";
    			strSql = strSql + ", \"DAV:displayname\"";
    			strSql = strSql + " from scope ('shallow traversal of " + "\"";
    			strSql = strSql + sFdUrl + "\"') ";
    			strSql = strSql + " WHERE \"DAV:ishidden\" = false";
    			strSql = strSql + " AND \"DAV:isfolder\" = false";
    
    
    			oRs.Open(strSql, oCn,
    				ADODB.CursorTypeEnum.adOpenStatic,
    				ADODB.LockTypeEnum.adLockUnspecified, 1);
    
    
    			if(oRs.State == 1)
    			{
    				Console.WriteLine("Recordset Opened");
    			}
    			else
    			{
    				Console.WriteLine("Recordset Failed Opened");
    			}
    
    			oRs.MoveFirst();
    			while(!oRs.EOF)
    			{
    				oFields = oRs.Fields;
                                        oField = oFields["DAV:href"];
    				Console.WriteLine(oField.Value);
    
    				oField = oFields["DAV:displayname"];
    				Console.WriteLine(oField.Value);
    
    				oRs.MoveNext();  
    				                             Console.WriteLine("--------------------------");
    
    			}
    
    			oRs.Close();
    			oCn.Close();
    
    			oCn = null;
    			oRs = null;
    			oFields = null;
    			oField = null;
    			}
    			catch (Exception e)
    			{
    				Console.WriteLine("{0} Exception caught.", e);
    			}			
    		}
            }
    }
    					
  6. Kodunda YAPıLACAK metin dizesini aramak ve ortamınızı kodunu değiştirin.
  7. Oluşturmaya ve programı çalıştırmak için F5 tuşuna basın.

Bu makaledeki bilginin uygulandığı durum:
  • Microsoft ActiveX Data Objects 2.5
  • Microsoft Exchange Server 2000 Service Pack 1
  • Microsoft Visual C# .NET 2003 Standard Edition
  • Microsoft Visual C# .NET 2002 Standard Edition
  • Microsoft Visual C# 2005
Anahtar Kelimeler: 
kbmt kbhowto kbmsg kbxml kbcode KB310207 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:310207  (http://support.microsoft.com/kb/310207/en-us/ )