如何使用三个不同的表使用Access显示值

时间:2012-05-15 13:42:31

标签: c# ms-access

OleDbDataAdapter dt = new OleDbDataAdapter("select UserName from UserInfo where User_ID = (select User_ID from Groupmem_info where Group_ID=(select Group_Member_ID from GroupInfo where Group_ID ='" + grp.Text + "'", con);

我们可以在访问中使用这种代码,我需要从三个链接表中显示用户名。组和用户的相互ID将在组成员信息表中。

请建议如何检索用户名,我想在datagridview中显示所有用户名。

1 个答案:

答案 0 :(得分:0)

更有效的方法是将SQL语句更改为内连接并使用参数化查询来避免SQL注入攻击:

OleDbDataAdapter adapter = new OleDbDataAdapter();
OleDbCommand command;

// Create the SelectCommand.
command = new OleDbCommand("select UserName from UserInfo ui  join Groupmem_info gi on ui.User_ID =ui.User_ID where gi.Group_ID = ? ", con);

command.Parameters.Add("GroupID", OleDbType.Integer);//assuming it's an integer
adapter.SelectCommand = command;

现在,您可以在Fill上调用OleDbDataAdapter,并将网格的DataSource属性设置为您填写的任何表:

youGrid.DataSource=yourDataTable;