2017-02-04 16 views
0

Недавно я изучал, как использовать параметры для хранения данных из C# в базу данных xampp. Мне просто нужно немного разъяснить некоторые темы.SQL injection понимание проблемы 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); 
    } 
} 

Так школа не помогает, что много для них только научил нас только основные из C#, и я наблюдал знания программирования от YouTube, и он не имеет каких-либо порно- по параметрам.

+0

Вопросы и ответы? – Teja

+0

@Teja Я собираюсь предположить, что они встроены в код. (Хотя Энрико действительно должен поместить их в суть самого вопроса.) –

+0

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

ответ

0

попробуйте этот образец, пожалуйста, отредактируйте соответствующим образом в соответствии с вашими потребностями.

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

спасибо! я искал простой пример почти 2 недели – Enriko

 Смежные вопросы

  • Нет связанных вопросов^_^