/// <summary>
/// Microsoft Office의 OleDb Provider 문자열을 구한다.
/// </summary>
/// <returns>OleDb Provider 문자열</returns>
/// <remarks>
/// Office 2003 및 이하버전: Microsoft.Jet.OLEDB.4.0
/// Office 2010 및 이하버전: Microsoft.ACE.OLEDB.12.0
/// Office 2013 버전: Microsoft.ACE.OLEDB.15.0
/// </remarks>
public string GetOfficeOleDbConnectString()
{
string sFoundString = "";
try
{
OleDbEnumerator enumerator = new OleDbEnumerator();
DataTable table = enumerator.GetElements();
List<string> aryProviders = new List<string>();
foreach (DataRow row in table.Rows)
aryProviders.Add(row[0].ToString());
table.Dispose();
aryProviders.Sort((p, n) => n.CompareTo(p));
sFoundString = aryProviders.Find(m => m.StartsWith("Microsoft.ACE.OLEDB"));
if (string.IsNullOrEmpty(sFoundString))
sFoundString = aryProviders.Find(m => m.StartsWith("Microsoft.Jet.OLEDB"));
return sFoundString;
}
catch(Exception ex)
{
System.Diagnostics.Trace.WriteLine(ex.Message);
}
sFoundString = "Provider=Microsoft.ACE.OLEDB.15.0";
return sFoundString;
}
'기본카테고리' 카테고리의 다른 글
[C#]엑셀파일을 저장한다. (0) | 2016.07.24 |
---|---|
[C#] 프로젝트경로 & 솔루션명 구하기 (0) | 2016.07.05 |
[C#, C++] 컴파일시 특정 warning을 감추고 싶을 때 (0) | 2015.07.23 |
[C#] DateTime 변수의 null 사용 방법 (0) | 2015.04.28 |
[C#] 엑셀파일을 출력한다. (0) | 2015.04.23 |