MySQL参数化选择查询连接表问题

时间:2014-04-28 15:15:38

标签: c# mysql

我将参数化选择查询与我的程序结合使用,整体而言,除非我尝试连接表格,否则它会起作用。

以下是我所做的一小段摘录:

using (MySqlCommand cmd = new MySqlCommand(paramQuery.ToSql(), connection)) {

/*
   paramQuery.ToSql() equals:

   "Select tableOne.ID, tableOne.Department, tableTwo.Name
   From tableOne, tableTwo
   Where tableOne.ID = @param0"
*/


    for (int index = 0; index < paramQuery.Parameters().Count; index++) 
        cmd.Parameters.AddWithValue(paramQuery.Parameters().ElementAt(index).Key,
            paramQuery.Parameters().ElementAt(index).Value);

    /*
       paramQuery.Parameters().ElementAt(index).Key = "@param0"
       paramQuery.Parameters().ElementAt(index).Value = "tableTwo.ID"
    */

    MySqlDataReader reader = cmd.ExecuteReader();
    while (reader.Read()) {
            // Do stuff
    }

}

我尝试加入的其中一个表格会检索tableTwo中的所有人,并且所有人都使用相同的ID。我在这里做错了吗?

1 个答案:

答案 0 :(得分:1)

试试这个:

  Select tableOne.ID, tableOne.Department, tableTwo.Name
  From tableOne join tableTwo
    on tableOne.ID=tableTwo.ID
  Where tableOne.ID = @param0

如您所知tableOne.ID = tableTwo.ID是您加入表的列的名称。在你目前的例子中,我看不出它是如何工作的。 还有左连接和右连接,它们分别用于不同的目的。 以下是一些查看其工作原理的示例:http://dev.mysql.com/doc/refman/5.0/en/join.html