我将参数化选择查询与我的程序结合使用,整体而言,除非我尝试连接表格,否则它会起作用。
以下是我所做的一小段摘录:
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
。我在这里做错了吗?
答案 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