2017-08-02 4 views
0

Meine web.config Datei enthält:ASP.NET: Einfügen von Daten in SQL Server

<connectionStrings> 
    <add name="MedDBConnectionString" 
     connectionString="Data Source=DESKTOP-3NELORE;Initial Catalog=MedDB;User ID=sa;Password=mypassword" 
     providerName="System.Data.SqlClient" /> 
</connectionStrings> 

Von einer Seite, möchte ich mit diesem Code ein Feld in eine SQL Server-Tabelle einzufügen:

SqlConnection sc = new SqlConnection(); 

sc.ConnectionString = ConfigurationManager.ConnectionStrings["MedDBConnectionString"].ConnectionString; 

sc.Open(); 

SqlCommand com = new SqlCommand(); 
com.Connection = sc; 
com.CommandText = "INSERT INTO tblSirketler (SirketAdi) VALUES ('" + txtSirketAdi.Text + "')"; 

com.ExecuteNonQuery(); 
sc.Close(); 

Dieser Code gibt weder einen Fehler noch fügt er der Tabelle den Wert hinzu. Ich bin neu in diesem Thema. Vielen Dank im Voraus für Ihre Antworten

+4

Das könnte entweder eine Ausnahme auslösen oder eine Zeile zur Tabelle hinzufügen. Sie suchen wahrscheinlich die falsche Datenbank oder so. Übrigens sollten Sie in Ihren SQL-Abfragen immer Parameter verwenden und keine Werte aus UI-Elementen einfügen. –

+3

Sind Sie sicher, dass dieser Code aufgerufen wird? Hast du versucht, zu debuggen und durchzukommen, um zu sehen, ob das irgendwelche Hinweise darauf gibt, was vor sich geht? Du hast auch gesagt, dass du neu bist, also werde ich von meiner üblichen Festschreibung Abstand nehmen, aber es ist immer noch fett, [** solltest du immer parametrisierte Abfragen verwenden **] (https://blog.codinghorror.com/Gib-mich-Parameterized-SQL-oder-gib-mir-Tod /), und verketten Sie Ihre Werte nicht in Ihre SQL. Es ist anfällig für fehlerhafte SQL, bösartige SQL-Injection, es ist nicht typsicher und kann keine zwischengespeicherten Abfragepläne verwenden. – GarethD

Antwort

0

Ich würde in die Verwendung eines Mikro-ORM wie Dapper für solche Abfragen aussehen. Dapper macht es sehr einfach, Ihre Abfrage zu parametrisieren, um SQL Injection zu verhindern. Es ist auch eine gute Idee, die Verbindung mit einer using-Anweisung zu verbinden.

Die Abfrage selbst sieht gut aus. Ich stimme den Kommentaren zu, wenn dieser Code ausgeführt wird, sollte er entweder eine Zeile hinzufügen oder einen Fehler werfen.

Verwandte Themen