2012-10-05 28 views
2

这主要是我试图读取C#(我知道的Python,PHP和JavaScript,但我是新来的C#)C#和MySQL - 字符串替换

这也可能是我想在这里解释的MySQL 。

我有这部分代码:

sql_query = "insert into peer_review_info " + 
      " (review_id, emp_id, comments_positive, comments_negative)" + 
      " values(?review_id, ?employeeid, ?strength, ?weakness) "; 
    myCommand = new MySqlCommand(sql_query, connection);    
    Trace.Write("strength = ", strength); 
    Trace.Write("areaofimprovement = ", areaofimprovement); 
    myCommand.Parameters.Add(new MySqlParameter("?review_id", ViewState["review_id"].ToString())); 
    myCommand.Parameters.Add(new MySqlParameter("?employeeid", ViewState["employeeid"].ToString())); 
    myCommand.Parameters.Add(new MySqlParameter("?strength", strength)); 
    myCommand.Parameters.Add(new MySqlParameter("?weakness", areaofimprovement)); 

我想知道什么在sql_query值部分手段?(是确定变量或一个C#的方式是什么我不意识到MySQL的语法)。

我也想知道,如果我对本节的理解是正确的 - 它或多或少只是一个SQL插入语句,然后是有关变量的定义。我对吗?

+0

这是准备一个MySql命令并在查询中设置参数,命令不在这个片段中运行。 –

回答

5

与C#没有任何关系,它们只是查询的命名参数。与编写PHP时一样,您可以在PDO/MySQLi中使用(阅读:应该使用)。

另请注意,这不是字符串替换,它是一个准备好的语句,它允许传递参数。您可以将预先准备好的语句更像是调用预定义参数的方法调用,而不是直接向数据库中写入一个长长的数据字符串(可能会注入潜在的注入)。

+1

你23秒快:) –