ado.net

ADO.Net wird häufig von Programmierern verwendet, um auf Daten in relationalen Datenbanksystemen zuzugreifen und diese zu ändern. Es kann jedoch auch auf Daten in nicht relationalen Quellen zugreifen. Es ist ein Teil der Basisklassenbibliothek, die in Microsoft .NET Framework enthalten ist.
2
Antworten

Verbindungs- und Strange-Verhalten bei Verwendung der Paketausführungstask erhalten

Ich habe ein Master-Paket, in dem ich mehrere Pakete unter Verwendung der Paket-Task ausführen aufruft. Sowohl untergeordnete als auch übergeordnete Pakete haben keine Konfiguration und verbinden OLEDB (SQL Server) über fest codierte SQL-Auth...
11.08.2012, 18:46
4
Antworten

Umgang mit riesigen SQL-Resultsets

Ich arbeite mit einer ziemlich großen MySQL-Datenbank (mehrere Millionen Zeilen) mit einer Spalte, die Blob-Bilder speichert. Die Anwendung versucht, eine Teilmenge der Bilder aufzunehmen und einige Verarbeitungsalgorithmen auf ihnen auszuführen...
26.03.2010, 00:03
4
Antworten

benutzerdefinierte sql mit Entity-Framework ausführen?

Ich muss eine benutzerdefinierte Abfrage ausführen, die irgendwo in der Datenbank gespeichert wird, und ich muss sie in einer Datentabelle oder einem Dataset zurückgeben und sie an eine Gridview binden, bei der die Spalten autogenerate auf true...
05.06.2012, 13:35
6
Antworten

___ answer247258 ___

Es gibt keinen großen Overhead, da Pools standardmäßig im Verbindungspool gespeichert werden. Wenn Sie also eine Verbindung öffnen, erhalten Sie oft eine fertige Verbindung aus dem Pool. Das Erstellen von SqlConnections hat mir keine Probleme bereitet.

    
___ answer247254 ___

Wenn Sie die gleiche Verbindungszeichenfolge verwenden, werden Ihre Verbindungen gepoolt. Sie sollten nur so lange eine Verbindung geöffnet haben, wie Sie sie benötigen.

    
___ answer247287 ___

Ich hatte den gleichen Gedanken, also benutzte ich die gleiche Verbindung in einer engen Schleife, um zu verhindern, dass ich eine andere instanziieren musste, wenn ich sie brauchte. Aber manchmal ist es schwer, den Überblick zu behalten und zu debuggen. Wenn Sie einen DataReader von der Verbindung trennen und dann versuchen, einen anderen zu starten, während derselbe Reader noch aktiv ist, erhalten Sie eine Ausnahme. Also, ich würde es nur empfehlen, wenn es wirklich häufig wie eine enge Schleife ist, sonst ist es die Mühe nicht wert.

    
___ answer247667 ___

Dies ist im Allgemeinen keine gute Sache (Sie könnten ein Leck verursachen und schließlich keine Verbindungen mehr haben), sondern verlassen sich stattdessen auf den Verbindungspool für die Leistung und öffnen Verbindungen nach Bedarf und schließen Verbindungen so schnell wie möglich.

Bill Vaughn hat eine Reihe nützlicher Artikel über Verbindungspooling und Datenzugriff einschließlich diesem

    
___ tag123net ___ Das .NET-Framework ist ein Software-Framework, das hauptsächlich für das Microsoft Windows-Betriebssystem entwickelt wurde. Es enthält eine Implementierung der Basisklassenbibliothek, Common Language Runtime (allgemein als CLR bezeichnet), Common Type System (allgemein als CTS bezeichnet) und Dynamic Language Runtime. Es unterstützt viele Programmiersprachen, einschließlich C #, VB.NET, F # und C ++ / CLI. NICHT für Fragen zu .NET Core verwenden. ___ tag123sql ___ Structured Query Language (SQL) ist eine Sprache für die Abfrage von Datenbanken. Fragen sollten Codebeispiele, Tabellenstruktur, Beispieldaten und ein Tag für die verwendete DBMS-Implementierung (z. B. MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 usw.) enthalten. Wenn sich Ihre Frage nur auf ein bestimmtes DBMS bezieht (verwendet bestimmte Erweiterungen / Funktionen), verwenden Sie stattdessen das Tag des DBMS. Antworten auf mit SQL gekennzeichnete Fragen sollten den ISO / IEC-Standard SQL verwenden. ___ tag123adonet ___ ADO.Net wird häufig von Programmierern verwendet, um auf Daten in relationalen Datenbanksystemen zuzugreifen und diese zu ändern. Es kann jedoch auch auf Daten in nicht relationalen Quellen zugreifen. Es ist ein Teil der Basisklassenbibliothek, die in Microsoft .NET Framework enthalten ist. ___ qstntxt ___

Es scheint, als ob viel Aufwand beim schnellen Öffnen und Schließen von SQL-Verbindungen anfällt. Soll ich eine Verbindung bestehen lassen (eine, pro Client, pro Datenbank), oder ein neues sqlconnection-Objekt immer dann deklarieren, wenn ich es brauche, und dafür sorgen, dass ich nach mir aufräume?

Was hast du getan? Was hat gut funktioniert und was hat schlecht funktioniert?

    
___ answer247805 ___

Jahrelang haben wir den Client eine einzige persistente Verbindung zur Datenbank behalten. Das Problem tritt auf, wenn ein unterbrochener Verbindungsfehler erkannt und die Verbindung ordnungsgemäß wiederhergestellt wird. Oftmals werden Sie nicht wissen, dass eine Verbindung fehlgeschlagen ist, bis Sie versuchen, sie zu verwenden (d. H., Ein select wird einen 'Allgemeinen SQL-Fehler' auslösen)

Wir verwenden jetzt eine global verfügbare statische Klasse, deren Aufgabe es ist, Ihnen eine neue Verbindung zur Datenbank zu geben, und wenn Sie damit fertig sind, verwenden Sie dieselbe Klasse, um die Verbindung loszuwerden.

%Vor%

Wir tun dies, weil eine Initialisierung erforderlich ist, wenn wir eine Verbindung zur Datenbank herstellen (wir speichern Informationen in CONTEXT_INFO von SQL Server und müssen diese Informationen beim Trennen der Verbindung leeren)

    
___ answer247293 ___

In den meisten Fällen übernimmt das .NET-Verbindungspooling dies für Sie. Auch wenn Sie Verbindungen über Code öffnen und schließen, passiert das nicht hinter den Kulissen. Wenn Sie eine Verbindung instanziieren und öffnen, sucht .NET nach einer vorhandenen Verbindung im Verbindungspool mit der gleichen Verbindungszeichenfolge und gibt Ihnen stattdessen diese Verbindung. Wenn Sie die Verbindung schließen, wird sie zur zukünftigen Verwendung im Verbindungspool wiederhergestellt.

Wenn Sie SQL Server verwenden: Ссылка

OLE DB, ODBC, Oracle: Ссылка

Dino Esposito Artikel: Ссылка

Sie können das standardmäßige Pooling-Verhalten mit Verbindungszeichenfolgenname / -werten überschreiben: Ссылка . Sehen Sie sich die zweite Tabelle der Einstellungen an, die 'Connection Lifetime' enthalten.

    
___

Es scheint, als ob viel Aufwand beim schnellen Öffnen und Schließen von SQL-Verbindungen anfällt. Soll ich eine Verbindung bestehen lassen (eine, pro Client, pro Datenbank), oder ein neues sqlconnection-Objekt immer dann deklarieren, wenn ich es...
29.10.2008, 15:28
4
Antworten

Können wir Variablen in der app.config-Datei deklarieren?

Ich habe ein Formular, das mit dem SQL Server verbunden werden muss, und ich habe eine Dropdown-Liste, um die Liste der Datenbanken auszuwählen und Operationen wie Primärschlüsselüberprüfung etc. durchzuführen. Aber zur Zeit sieht meine Verbindu...
23.11.2010, 14:09
5
Antworten

Sollte ich db für jede Abfrage öffnen und schließen?

Ich benutze alte Schule ADO.net mit C #, also gibt es eine Menge von dieser Art von Code. Ist es besser, pro Abfrage eine Funktion zu erstellen und die Datenbank jedes Mal zu öffnen und zu schließen oder mehrere Abfragen mit demselben Verbindung...
14.03.2011, 20:40
2
Antworten

Zurückgeben eines Spaltenwerts aus einer Tabelle im Dataset

Ich habe einen Datensatz mit zwei Tabellen. Ich möchte den Wert der ersten Spalte aus der zweiten Tabelle abrufen und ihn auf eine int-Variable initialisieren. Der Name dieser Spalte war CONTACT_ID Ich habe es versucht. %Vor% aber es zei...
14.05.2014, 07:25
7
Antworten

ADO.NET Frage: Wann DataReader, DataAdapter verwendet werden soll

Ich frage mich nur, welche Dinge ich beachten muss, wenn ich DataReader und DataAdapter beim Abrufen von Daten aus der Datenbank benutze und was der Unterschied zwischen diesen beiden anderen Datenreadern ist, die offene Verbindung benötigt und...
12.09.2010, 04:48
1
Antwort

Wie verwende ich Array / Table Parameter zu Oracle (ODP.NET 10g) über ADO.NET/C#?

Diese Antwort zu diese Frage ist in Ordnung, aber ich suche nach ADO.NET Code, um ein Array oder eine Tabelle an eine Oracle-Prozedur zu senden und diese Tabelle dann in der Prozedur zu verwenden. In SQL Server-Tabellenwertparametern ist...
18.04.2012, 21:00
8
Antworten

Entity-Datenmodell-Designer kann die EDMX-Datei nicht öffnen

Das Seltsame ist, dass es vor ein paar Tagen gut funktionierte. Ich habe eine neue Spalte zu einer Tabelle hinzugefügt und wollte das Modell über den Designer aktualisieren. Jetzt heißt es: "Der Entity Data Model Designer kann die angeforderte D...
14.02.2013, 20:53