Hallo zusammen und ein fröhliches Hallo
Ich bin blutiger anfänger und hänge irgendwie fest.
Ich versuche seit 2 Tagen eine csv einzulesen und in einem ms-sql server zu versorgen. Das heisst ich hab ein button und starte damit das ganze. Die Parameter sind zuerst einmal fix reingeschrieben.
Ist die CSV unter 100 zeilen, dann geht es.
Ist die CSV über100 zeilen, dann geht es nicht. Die GUI wirf dann folgendes:
Timeout abgelaufen. Das Zeitlimit ist vor dem Anfordern einer Verbindung aus dem Pool abgelaufen. Möglicherweise werden alle Verbindungen im Pool bereits verwendet, und die maximale Poolgröße wurde erreicht.
Ist das genau mein thema? Threading ?
[FAQ] Warum blockiert mein GUI? Oder hab ich ein anderes problem ?
Ich hab schon mal versucht das ganze in einen eigene thread zu packen, bin jedoch dann beim übergeben der parameter gescheitert.
Womit könnt ihr mir helfen, ich hab schlicht weg kein schimmer wo ich suchen muss und was der von mit will. Ich wäre dankbar für einen anhaltspunkt damit ich wieder etwas weiter komme.
private void btn_import_Click(object sender, EventArgs e)
{
string s_path = "C:/temp";
string s_dateiname = "Extrakt.csv";
DataTable test = new DataTable();
Model mod = new Model();
test = mod.ReadCSV(s_path + "/" + s_dateiname, ';');
}
public DataTable ReadCSV(string path, char seperator)
{
//DataTabel erstellt
//Wird mit den Daten des gefüllt
//FileStream dient zum lesen der CSV
DataTable dt = new DataTable();
FileStream aFile = new FileStream(path, FileMode.Open);
using (StreamReader sr = new StreamReader(aFile, System.Text.Encoding.Default))
{
//Splitten und in Kollenen abfüllen
string strLine = sr.ReadLine();
string[] strArray = strLine.Split(seperator);
foreach (string value in strArray)
dt.Columns.Add(value.Trim());
DataRow dr = dt.NewRow();
//Peek solange es noch Zeilen "sr" hat
while (sr.Peek() > -1)
{
strLine = sr.ReadLine();
strArray = strLine.Split(seperator);
//Zeile hinzufügen im DataTabel
dt.Rows.Add(strArray);
}
}
//bulkcopy versuch
SqlConnection cs = new SqlConnection("Data Source=Laptop\\semester; Initial Catalog=EDM; Integrated Security=True");
//Open bulkcopy connection.
using (SqlBulkCopy bcp = new SqlBulkCopy(cs))
{
bcp.DestinationTableName = "dbo.history";
bcp.BatchSize = 500;
bcp.BulkCopyTimeout = 300; // 300 seconds
//
bcp.WriteToServer(dt);
}
//Datatabel zurückgeben
return dt;
}
Wer genau wirft den Fehler? Dass der in der GUI angezeigt wird ist klar, Messageboxen gehörenn zur GUI. Aber der Fehler kann ja eigentlich nur in WriteToServer auftreten, ohne jetzt genau zu wissen was das wie macht. Aber wenns BulkCopy heißt, sollte es mit 100 Zeilen zurechtkokmmen.
Was passiert wenn du denn Timeout höher machst?
Das würde in deinem Fall bedeuten dass das Dings 5 Minuten läuft um 100 Zeilen einzutragen, find ich ein bisschen seltsam. Aber probier mal damit rum.
Ist die Verbindung durch irgendeinen Grund villeicht so langsam, dass eine der beiden Seiten dann einfach sagt ok, ich hab jetzt keine lust mehr. Wie sendest du die Anfrage genau?
Stimmt, wo genau der fehler auftritt, wäre noch so entscheidend. Der fehler wird mir hier angezeigt:
namespace BEOPT
{
static class Program
{
/// <summary>
/// Der Haupteinstiegspunkt für die Anwendung.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
Um genau zu sein bei Application.Run(new Form1());
Ich kann es soweit eingrenzen, dass das laden des CSV's in die DataTabel auch mit 2.5 Millionen ROW's geht. Das GUI hängt zwar etwas "15sec", aber gibt mir dann den ersten wert der DataTabel aus --> qasi meine kontrolle.
Das Problem tritt erst auf, seit ich die Daten in die DB schreiben will. Sowohl mit BulkCopy, wie auch wenn ich mit jeder zeile einen einzelnen SQL String absetze (SQLCommand).
Meine Umgebung: Alles Lokal direkt auf dem Laptop Windows 7, MS-SQL Server
Hi speedytweety,
dies ist ja nur der Einstiegspunkt deines Programm. Bitte schau dir den Exception-StackTrace an, um die genaue Fehlerstelle in deinem Programm zu erhalten.
Villeicht ist dein PC einfach so ausgelastet, dass der Server einen Timeout verursacht, weil er nicht schnell genug antwortet?
Ich vermute mal mein PC ist nicht so ausgelastet, ich kann neben bei Arbeiten. Ich hab ja nur ein Thread aus C# und die andere CPU kann dan die SQL DB nehmen, sollte also passen.
Nun gibts ein harte Landung "Exception-StackTrace" ? Ich befürchte, ihr lerne erst mal Debuggen. Hast du sowas gemeint ? In Zeile 108 steht die Tolle Fehlermeldung und in Zeile 82 hab ich nun auch was gesehen, kann ich aber auch nicht interpretieren
Fehlermeldung:
"BEOPT.vshost.exe" (Verwaltet (v2.0.50727)): "C:\Windows\assembly\GAC_32\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll" wurde geladen, das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
"BEOPT.vshost.exe" (Verwaltet (v2.0.50727)): "C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities\10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.dll" wurde geladen, das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
"BEOPT.vshost.exe" (Verwaltet (v2.0.50727)): "C:\Windows\assembly\GAC_MSIL\System.Windows.Forms\2.0.0.0__b77a5c561934e089\System.Windows.Forms.dll" wurde geladen, das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
"BEOPT.vshost.exe" (Verwaltet (v2.0.50727)): "C:\Windows\assembly\GAC_MSIL\System\2.0.0.0__b77a5c561934e089\System.dll" wurde geladen, das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
"BEOPT.vshost.exe" (Verwaltet (v2.0.50727)): "C:\Windows\assembly\GAC_MSIL\System.Drawing\2.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll" wurde geladen, das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
"BEOPT.vshost.exe" (Verwaltet (v2.0.50727)): "C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities.Sync\10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.Sync.dll" wurde geladen, das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
"BEOPT.vshost.exe" (Verwaltet (v2.0.50727)): "C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.Debugger.Runtime\10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Debugger.Runtime.dll" wurde geladen, das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
"BEOPT.vshost.exe" (Verwaltet (v2.0.50727)): "C:\Windows\assembly\GAC_MSIL\mscorlib.resources\2.0.0.0_de_b77a5c561934e089\mscorlib.resources.dll" wurde geladen, das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
"BEOPT.vshost.exe" (Verwaltet (v2.0.50727)): "D:\Users\Username\Documents\Visual Studio 2010\Projects\BEOPT\BEOPT\bin\Debug\BEOPT.vshost.exe" wurde geladen, das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
"BEOPT.vshost.exe" (Verwaltet (v2.0.50727)): "C:\Windows\assembly\GAC_MSIL\System.Core\3.5.0.0__b77a5c561934e089\System.Core.dll" wurde geladen, das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
"BEOPT.vshost.exe" (Verwaltet (v2.0.50727)): "C:\Windows\assembly\GAC_MSIL\System.Xml.Linq\3.5.0.0__b77a5c561934e089\System.Xml.Linq.dll" wurde geladen, das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
"BEOPT.vshost.exe" (Verwaltet (v2.0.50727)): "C:\Windows\assembly\GAC_MSIL\System.Data.DataSetExtensions\3.5.0.0__b77a5c561934e089\System.Data.DataSetExtensions.dll" wurde geladen, das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
"BEOPT.vshost.exe" (Verwaltet (v2.0.50727)): "C:\Windows\assembly\GAC_32\System.Data\2.0.0.0__b77a5c561934e089\System.Data.dll" wurde geladen, das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
"BEOPT.vshost.exe" (Verwaltet (v2.0.50727)): "C:\Windows\assembly\GAC_MSIL\System.Deployment\2.0.0.0__b03f5f7f11d50a3a\System.Deployment.dll" wurde geladen, das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
"BEOPT.vshost.exe" (Verwaltet (v2.0.50727)): "C:\Windows\assembly\GAC_MSIL\System.Xml\2.0.0.0__b77a5c561934e089\System.Xml.dll" wurde geladen, das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
Der Thread '<Kein Name>' (0x1090) hat mit Code 0 (0x0) geendet.
Der Thread '<Kein Name>' (0x193c) hat mit Code 0 (0x0) geendet.
Der Thread 'vshost.LoadReference' (0x1020) hat mit Code 0 (0x0) geendet.
"BEOPT.vshost.exe" (Verwaltet (v2.0.50727)): "D:\Users\Username\Documents\Visual Studio 2010\Projects\BEOPT\BEOPT\bin\Debug\BEOPT.exe" geladen, Symbole geladen.
"BEOPT.vshost.exe" (Verwaltet (v2.0.50727)): "C:\Windows\assembly\GAC_MSIL\System.Configuration\2.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll" wurde geladen, das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
"BEOPT.vshost.exe" (Verwaltet (v2.0.50727)): "C:\Windows\assembly\GAC_32\System.Transactions\2.0.0.0__b77a5c561934e089\System.Transactions.dll" wurde geladen, das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
"BEOPT.vshost.exe" (Verwaltet (v2.0.50727)): "C:\Windows\assembly\GAC_32\System.EnterpriseServices\2.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll" wurde geladen, das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
"BEOPT.vshost.exe" (Verwaltet (v2.0.50727)): "C:\Windows\assembly\GAC_MSIL\System.Data.resources\2.0.0.0_de_b77a5c561934e089\System.Data.resources.dll" geladen
Eine Ausnahme (erste Chance) des Typs "System.InvalidOperationException" ist in System.Data.dll aufgetreten.
"BEOPT.vshost.exe" (Verwaltet (v2.0.50727)): "C:\Windows\assembly\GAC_MSIL\System.Transactions.resources\2.0.0.0_de_b77a5c561934e089\System.Transactions.resources.dll" geladen
System.Transactions Critical: 0 : <TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Critical"><TraceIdentifier>
> </TraceIdentifier><Description>Unbehandelte Ausnahme</Description><AppDomain>BEOPT.vshost.exe</AppDomain><Exception><ExceptionType>System.InvalidOperationException, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType><Message>Timeout abgelaufen. Das Zeitlimit ist vor dem Anfordern einer Verbindung aus dem Pool abgelaufen. Möglicherweise werden alle Verbindungen im Pool bereits verwendet, und die maximale Poolgröße wurde erreicht.</Message><StackTrace> bei System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
bei System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
bei System.Data.SqlClient.SqlConnection.Open()
bei BEOPT.Form1.SQLinsert(DataTable dt) in D:\Users\Username\Documents\Visual Studio 2010\Projects\BEOPT\BEOPT\Form1.cs:Zeile 72.
bei BEOPT.Form1.btn_import_Click(Object sender, EventArgs e) in D:\Users\Username\Documents\Visual Studio 2010\Projects\BEOPT\BEOPT\Form1.cs:Zeile 46.
bei System.Windows.Forms.Control.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
bei System.Windows.Forms.Control.WmMouseUp(Message&amp; m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message&amp; m)
bei System.Windows.Forms.ButtonBase.WndProc(Message&amp; m)
bei System.Windows.Forms.Button.WndProc(Message&amp; m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message&amp; m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message&amp; m)
bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG&amp; msg)
bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.Run(Form mainForm)
bei BEOPT.Program.Main() in D:\Users\Username\Documents\Visual Studio 2010\Projects\BEOPT\BEOPT\Program.cs:Zeile 18.
bei System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart()</StackTrace><ExceptionString>System.InvalidOperationException: Timeout abgelaufen. Das Zeitlimit ist vor dem Anfordern einer Verbindung aus dem Pool abgelaufen. Möglicherweise werden alle Verbindungen im Pool bereits verwendet, und die maximale Poolgröße wurde erreicht.
bei System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
bei System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
bei System.Data.SqlClient.SqlConnection.Open()
bei BEOPT.Form1.SQLinsert(DataTable dt) in D:\Users\Username\Documents\Visual Studio 2010\Projects\BEOPT\BEOPT\Form1.cs:Zeile 72.
bei BEOPT.Form1.btn_import_Click(Object sender, EventArgs e) in D:\Users\Username\Documents\Visual Studio 2010\Projects\BEOPT\BEOPT\Form1.cs:Zeile 46.
bei System.Windows.Forms.Control.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
bei System.Windows.Forms.Control.WmMouseUp(Message&amp; m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message&amp; m)
bei System.Windows.Forms.ButtonBase.WndProc(Message&amp; m)
bei System.Windows.Forms.Button.WndProc(Message&amp; m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message&amp; m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message&amp; m)
bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG&amp; msg)
bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.Run(Form mainForm)
bei BEOPT.Program.Main() in D:\Users\Username\Documents\Visual Studio 2010\Projects\BEOPT\BEOPT\Program.cs:Zeile 18.
bei System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart()</ExceptionString></Exception></TraceRecord>
Der Thread '<Kein Name>' (0x6a0) hat mit Code 0 (0x0) geendet.
Eine Ausnahme (erste Chance) des Typs "System.InvalidOperationException" ist in System.Data.dll aufgetreten.
System.Transactions Critical: 0 : <TraceRecord xmlns="http://schemas.microsoft.com/2004/10/E2ETraceEvent/TraceRecord" Severity="Critical"><TraceIdentifier>
> </TraceIdentifier><Description>Unbehandelte Ausnahme</Description><AppDomain>BEOPT.vshost.exe</AppDomain><Exception><ExceptionType>System.InvalidOperationException, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</ExceptionType><Message>Timeout abgelaufen. Das Zeitlimit ist vor dem Anfordern einer Verbindung aus dem Pool abgelaufen. Möglicherweise werden alle Verbindungen im Pool bereits verwendet, und die maximale Poolgröße wurde erreicht.</Message><StackTrace> bei System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
bei System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
bei System.Data.SqlClient.SqlConnection.Open()
bei BEOPT.Form1.SQLinsert(DataTable dt) in D:\Users\Username\Documents\Visual Studio 2010\Projects\BEOPT\BEOPT\Form1.cs:Zeile 72.
bei BEOPT.Form1.btn_import_Click(Object sender, EventArgs e) in D:\Users\Username\Documents\Visual Studio 2010\Projects\BEOPT\BEOPT\Form1.cs:Zeile 46.
bei System.Windows.Forms.Control.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
bei System.Windows.Forms.Control.WmMouseUp(Message&amp; m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message&amp; m)
bei System.Windows.Forms.ButtonBase.WndProc(Message&amp; m)
bei System.Windows.Forms.Button.WndProc(Message&amp; m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message&amp; m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message&amp; m)
bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG&amp; msg)
bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.Run(Form mainForm)
bei BEOPT.Program.Main() in D:\Users\Username\Documents\Visual Studio 2010\Projects\BEOPT\BEOPT\Program.cs:Zeile 18.
bei System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart()</StackTrace><ExceptionString>System.InvalidOperationException: Timeout abgelaufen. Das Zeitlimit ist vor dem Anfordern einer Verbindung aus dem Pool abgelaufen. Möglicherweise werden alle Verbindungen im Pool bereits verwendet, und die maximale Poolgröße wurde erreicht.
bei System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
bei System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
bei System.Data.SqlClient.SqlConnection.Open()
bei BEOPT.Form1.SQLinsert(DataTable dt) in D:\Users\Username\Documents\Visual Studio 2010\Projects\BEOPT\BEOPT\Form1.cs:Zeile 72.
bei BEOPT.Form1.btn_import_Click(Object sender, EventArgs e) in D:\Users\Username\Documents\Visual Studio 2010\Projects\BEOPT\BEOPT\Form1.cs:Zeile 46.
bei System.Windows.Forms.Control.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnClick(EventArgs e)
bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
bei System.Windows.Forms.Control.WmMouseUp(Message&amp; m, MouseButtons button, Int32 clicks)
bei System.Windows.Forms.Control.WndProc(Message&amp; m)
bei System.Windows.Forms.ButtonBase.WndProc(Message&amp; m)
bei System.Windows.Forms.Button.WndProc(Message&amp; m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message&amp; m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message&amp; m)
bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG&amp; msg)
bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
bei System.Windows.Forms.Application.Run(Form mainForm)
bei BEOPT.Program.Main() in D:\Users\Username\Documents\Visual Studio 2010\Projects\BEOPT\BEOPT\Program.cs:Zeile 18.
bei System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
bei System.Threading.ThreadHelper.ThreadStart()</ExceptionString></Exception></TraceRecord>
Ja, debuggen und "Fehlermeldungen interpretieren" lernen ist sehr wichtig.
Dies sind die relevanten Zeilen:> Fehlermeldung:
bei System.Data.SqlClient.SqlConnection.Open()
bei BEOPT.Form1.SQLinsert(DataTable dt) in D:\Users\Username\Documents\Visual Studio 2010\Projects\BEOPT\BEOPT\Form1.cs:Zeile 72.
bei BEOPT.Form1.btn_import_Click(Object sender, EventArgs e) in D:\Users\Username\Documents\Visual Studio 2010\Projects\BEOPT\BEOPT\Form1.cs:Zeile 46.
Woher kommt jetzt die Methode SQLinsert (die hast du bisher in deinem gezeigten Code nicht drin)?
Alternativ kannst du auch im VS die Option "bei Exception halten" setzen (Menü "Debug/Exceptions").
Folgendes:
Ursprünglich war es mal zwei Methoden, mit folgenden aufgaben:
CSV to Datatabel
DataTabel to SQL-Server
Irgendwie hab ich mir beim erstenversuch was falsch gemacht mit meinem Connectionstring. Die Methode hab ich dann links liegen gelassen, da ich sie ja nicht mehr aufrufe, sollte das kein Problem sein. Falsch gedacht.
Was nun in den bösen Zeilen steht. Über mein "cs." connectionsstring kommt der irgendwie in die falsche methode. Oder ich weiss nicht so genau was der macht. Einmal komplett auskommentieren..--> es geht
thx euch viel mal leute 🙂