Du har ikke vist os den fulde kode, du bruger til at oprette forbindelse til en database, men det ser ud til fra en kommentar til et andet svar, at du bruger OLE DB. Jeg ville undgå at bruge det, især hvis det ser ud til at have en noget vilkårlig grænse på 128 tegn for en datakilde.
Jeg vil også påpege, at du også kan undgå at skulle installere en Oracle-klient, som anbefalet af en anden besvarer. Jeg har ikke meget erfaring med 'instant'-klienten, men den fulde klient er en heftig download og er ikke nødvendig bare for at kunne forbinde et C#-program til Oracle.
I stedet kan vi bruge Oracle Managed Data Access-biblioteket. Du kan installere dette ved hjælp af NuGet. For at gøre dette:
- gå til Tools> Library Package Manager> Package Manager Console,
- sørg for, at det korrekte projekt er valgt i rullelisten 'Standardprojekt',
-
indtast
Install-Package odp.net.managed
Dette skulle tilføje download af biblioteket fra NuGet og tilføje Oracle.ManagedDataAccess til referencerne for dit projekt.
Derefter, hvis du tilføjer en using
direktiv for Oracle.ManagedDataAccess.Client
, skal følgende kode tale til en Oracle-database:
string connStr = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<hostname>)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=<service_name>)));User Id=<user>;Password=<password>";
Console.WriteLine("Connection string has length " + connStr.Length);
using (var connection = new OracleConnection() { ConnectionString = connStr })
{
connection.Open();
OracleCommand command = new OracleCommand("SELECT * FROM DUAL", connection);
using (OracleDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine(reader.GetString(0));
}
}
}