2017-02-04 5 views
0

Kürzlich habe ich studiert, wie man Parameter benutzt, um Daten von C# zu xampp Datenbank zu speichern. Ich brauche nur ein paar Erläuterungen zu einigen Themen.SQL-Injection Verständnisstörung C#

using System.Data; 
using MySql.Data.MySqlClient; 

ConnectionClass cc = new ConnectionClass(); 

private MySqlConnection myConn = new MySqlConnection(ConnectionClass.GetConnection()); 
private MySqlCommand cmDB; 

cc.SetCMD("UPDATE mia_payroll.tbl_attendance SET TimeIn = @TimeIn, Date = @Date, EID = @EID;"); 

using(myConn) ** // 1) can I do it like this or instantiate another new MysqlConnection?** 
{ 
    cmDB = new MySqlCommand(cc.GetCMD(), myConn); 

    try 
    { 
     myConn.Open(); 
     myReader = cmDB.ExecuteReader(); 
     // 2)In MSDN it's SqlDataAdapter is mine okay? 
     cmDB.Parameters.Add("@EID", Text, 11); 
     // 3) is the position of this line correct or do I need to adjust this? 
     // 4) the text in() generates error how do I do this? 
     cmDB.Parameters["@EID"].Value = lblEID.Text; 
     // 5) How do I instantiate another 5 variables? (an int, a text, a time, date and a varchar) 
     // 6) and does parameters allow special characters into database? or should I just use regex? 

     while (myReader.Read()) 
     { 
     TimeSpan TIN = myReader.GetTimeSpan("TimeIn"); 
     lblTIN.Text = TIN.ToString(@"hh\:mm\:ss"); 
     } 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
} 

So Schule hilft nicht viel für sie uns nur gelehrt, nur den Grund von C# und ich habe Programmierkenntnisse von youtube beobachtet und er hat keine vids auf Parameter.

+0

Wo sind Ihre Fragen? – Teja

+0

@Teja Ich gehe davon aus, dass sie diejenigen sind, die in den Code eingebettet sind. (Obwohl Enriko wirklich sollte sich in dem Körper der Frage selbst gestellt.) –

+0

https://dev.mysql.com/doc/connector-net/en/connector-net-tutorials-parameters.html –

Antwort

0

versuchen Sie dieses Beispiel, bitte bearbeiten Sie entsprechend entsprechend Ihren Bedürfnissen entsprechend.

using System.Data; 
using MySql.Data.MySqlClient; 

var timeIn = blabla; 
var eID = lblEID.Text; 
//var blablabla = blablabla; 
var query = @"UPDATE mia_payroll.tbl_attendance SET TimeIn = @TimeIn, Date = @Date, EID = @EID"; //are you missing a WHERE clause? otherwise you will update all row. maybe you want to do something like below. 
//var query = @"UPDATE mia_payroll.tbl_attendance SET TimeIn = @TimeIn, Date = @Date, EID = @EID WHERE rowID = @rowID"; 
using(MySqlConnection myConn = new MySqlConnection(ConnectionClass.GetConnection())) 
using(MySqlCommand cmDB = new MySqlCommand(query, myConn)) 
{ 
    try 
    { 
     //for your question to me about adding parameters value, just keep adding. 
     cmDB.Parameters.AddWithValue("@TimeIn", timeIn); 
     cmDB.Parameters.AddWithValue("@eID", eID); 
     //cmDb.Parameters....... and so on 
     //now execute query 
     myConn.Open(); 
     using(MySqlDataReader myReader = cmDB.ExecuteReader()) 
     { 
      while(myReader.Read()) 
      { 
       //do what you want with your result. 
      } 
     } 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
    finally 
    { 
     myConn.Close(); 
    } 
} 
+0

danke! Ich habe seit fast 2 Wochen nach einem einfachen Beispiel gesucht – Enriko