2016-06-01 11 views
2

feuern Ich fragte mich, was ich hier in meinem Code vermisse. Alles, was ich möchte, ist einen spezifischen Wert, creditrequest, von CreditRequest Tabelle zu bekommen und in UserData Tabelle, creditrequest Spalte. Irgendwie führt mein Code die Aufgabe nicht aus.Update SQL-Anweisung, die nicht zur Datenbank

Hier ist mein Code:

using (SqlConnection scn = new SqlConnection("Data Source = 'PAULO'; Initial Catalog=ShoppingCartDB;Integrated Security =True")) 
{ 
    scn.Open(); 

    SqlCommand cmd = new SqlCommand(@"UPDATE UserData SET CreditRequest = 
    (SELECT CAST(REPLACE(c.CreditRequest, ',', '') as int) 
    FROM CreditRequests c Where [email protected]", scn); 

    cmd.Parameters.Add("@Username", SqlDbType.NVarChar).Value = Session["New"]; 

    cmd.ExecuteNonQuery(); 
} 
+0

Warum haben Sie zwei Aussagen. Versuchen Sie, das nächste 'SELECT' zu entfernen und dann' ExecuteNonQuery' zu verwenden. –

+0

versuchte, die 2. Anweisung zu entfernen (vergaß, sie zu entfernen) und änderte sie in exuduenonquery. funktioniert immer noch nicht @FelixPamittan –

+0

fyi, ich habe den gleichen Code in meiner anderen Taste und funktioniert einwandfrei. keine Ahnung, warum dieses nicht funktioniert –

Antwort

0

Let Blick auf den Code Zeile für Zeile.

using (SqlConnection scn = new SqlConnection("Data Source = 'PAULO'; Initial Catalog=ShoppingCartDB;Integrated Security =True")) 
//I hope this is correct. Else "Server=PAOLO;Database=ShoppingCartDB;Integrated Security=True" 
{ 
    scn.Open(); 
/* 
    SqlCommand cmd = new SqlCommand(@"UPDATE UserData SET CreditRequest = 
    (SELECT CAST(REPLACE(c.CreditRequest, ',', '') as int) 
    FROM CreditRequests c Where [email protected]", scn); 
*/ 
    //SQL statement is all wrong and can update all rows 
    //Correct is 
    SqlCommand cmd = new SqlCommand(@"UPDATE UserData SET CreditRequest = " 
     + "CAST(REPLACE(c.CreditRequest, ',', '') as int) " 
     + " FROM CreditRequests c inner join UserData u " 
     + "on c.Username=u.Username Where [email protected]", scn); 
    cmd.Parameters.Add("@Username", SqlDbType.NVarChar).Value = (string)Session["New"]; //This is good 

    cmd.ExecuteNonQuery(); 
} 
+0

Vielen Dank! :) –