2012-04-02 8 views
-5

Es ist nicht überhaupt .. funktioniert, wenn ich mich AusnahmeWPF SQL QUERY - INSERT ERROR

SqlConnection myConnection = new SqlConnection("Data Source=MOAMEN-PC\\SQLEXPRESS; Initial Catalog=MyDatabase; Integrated Security=SSPI;"); 

try 
{ 
    myConnection.Open(); 

    SqlDataAdapter adapter = new SqlDataAdapter(); 
    adapter.TableMappings.Add("MyTable"); 

    String name = "Bird"; 
    int id = 23; 

    SqlCommand insertCommand = myConnection.CreateCommand(); 
    insertCommand.CommandText = "INSERT INTO MyTable ([id], [name]) VALUES ('" + id + "','" + name + "')"; 

    insertCommand.CommandType = CommandType.Text; 

    adapter.InsertCommand = insertCommand; 
    DataSet dataSet = new DataSet("MyTable"); 
    adapter.Fill(dataSet); 
} 
catch (Exception e) 
{ 
    // some exception handler 
} 
+2

Wenn Sie helfen möchten, müssen Sie Ihre Ausnahme schreiben .. –

+0

Trotz Ihrer vage beschriebene Problem, es sieht aus wie Sie einfügen könnten versuchen, Text in ein int - entferne die Anführungszeichen um ID, so dass es 'VALUES (23, 'Bird')' anstelle von 'VALUES ('23', 'Bird')' – yoozer8

+0

Ich vergaß mein Gehirn eingebettete IL Jitter und runne rin das Büro also kann ich die Ausnahme nicht selbst erraten –

Antwort

0

Handhabung erhalten debuggen Wenn ich raten müsste (und das ist, was ich tue),
Sie so müssen die Insert-Anweisung ersetzen:

insertCommand.CommandText = "INSERT INTO MyTable (id, name) VALUES ('" + id + "','" + name + "')"; 
+0

Ich habe es sogar versucht: insertCommand.CommandText = "INSERT IN MyTable (ID, Name) WERTE (12, 'Vogel')"; Immer noch nicht funktioniert – user6907049

+0

@ user1308991 vielleicht postest du deine geheime Ausnahme ?? –

1

„Trotz Ihrer vage beschriebene Problem, es sieht aus wie Sie Text in ein int einfügen könnte versuchen - die Anführungszeichen um id entfernen, um es VALUES sagt (23,‚Bird ') anstelle von WERTEN (' 23 ',' Bird ') "

das auch meine Vermutung wäre, ... würde ich den Failsafe empfehlen - http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparametercollection.addwithvalue.aspx

Allright, da keine Ausnahme gibt es werde ich nur eine andere Vermutung fliegen lassen .. Könnte es, dass die ID eingestellt wird sein eine automatische Nummer?

+0

Ich habe sogar versucht: insertCommand.CommandText = "INSERT IN MyTable (ID, Name) WERTE (12, 'Vogel')"; Funktioniert immer noch nicht – user6907049

+0

Alles klar, da es keine Ausnahme gibt, lasse ich einfach eine andere Schätzung ripsen .. Könnte es sein, dass ID als eine automatische Nummer festgelegt wird? – aLoveForCoffee

1

Sie sind nicht ein Dataset füllen Sie ausführen eine commmand

insertCommand.ExecuteNonQuery() 
+0

Ich versuchte dies .. funktioniert nicht – user6907049

+0

Dann legen Sie es in einen Versuch catch Block und post die Ex.Message. Ich mache das die ganze Zeit. ExecuteNonQuery() ist die richtige Methode, da es möglicherweise ein TSQL-Syntaxproblem oder ein Problem mit der Verbindung gibt. Debug.WriteLine (e.Message); – Paparazzi