[ad_1]
こんにちは、
OLEDb 接続を作成できます。 ただし、データを取得できません。 「SQL Developer」を使用して同じクエリを実行したところ、データがありました。
お知らせ下さい。
ありがとうございました。
私が試したこと:
次のコードで OLEDb 接続を作成できます。
C#
var cfg = ConfigurationManager.AppSettings; string dirSvr = cfg["ldapServer"]; string context = cfg["ldapContext"]; string svcname = cfg["ldapSvcName"]; string ldapAdress = $"LDAP://{dirSvr}/{context}"; string query = $"(&(objectclass=orclNetService)(cn={svcname}))"; string orclnetdescstring = "orclnetdescstring"; DirectoryEntry directoryEntry = new DirectoryEntry(ldapAdress, null, null, AuthenticationTypes.Anonymous); DirectorySearcher directorySearcher = new DirectorySearcher(directoryEntry, query, new[] { orclnetdescstring }, SearchScope.Subtree); SearchResult searchResult = directorySearcher.FindOne(); byte[] value = searchResult.Properties[orclnetdescstring][0] as byte[]; string descriptor = ""; if (value != null) { descriptor = Encoding.Default.GetString(value); } else throw new Exception("LDAP response was empty"); string s = "Min Pool Size=1;Max Pool Size=10;Provider=OraOLEDB.Oracle;Pooling=true;User ID=usr;Password=pwd"; Data Source=" + descriptor + ";"; OleDbConnection con = new OleDbConnection(s); string strSQL = "Select * from users"; con.Open(); //success OleDbDataAdapter oDA = new OleDbDataAdapter(strSQL, con); DataSet ds = new DataSet(); oDA.Fill(ds); con.Close();
解決策 1
string s = "Min Pool Size=1;Max Pool Size=10;Provider=OraOLEDB.Oracle;Pooling=true;User ID=usr;Password=pwd"; Data Source=" + descriptor + ";";
あなたの弦の形成は正しくないようです。
試す:
C#
string s = "Min Pool Size=1;Max Pool Size=10;Provider=OraOLEDB.Oracle;Pooling=true;User ID=usr;Password=pwd;Data Source=" + descriptor + ";";
デバッガーを使用して、接続文字列が正しく形成されていることを確認します (予想どおり)。
[ad_2]
コメント