objCommand.CommandText += " AND USERS.NICKNAME LIKE @NICKNAME";
// 设置Sql语句参数类型
objCommand.Parameters.Add("USERNAME", SqlDbType.VarChar);
objCommand.Parameters.Add("NICKNAME", SqlDbType.VarChar);
// Sql语句参数赋值
objCommand.Parameters["USERNAME"].Value = "%" + tbxUserName.Text.Trim() + "%";
objCommand.Parameters["NICKNAME"].Value = "%" + tbxNickName.Text.Trim() + "%";
//这里使用DataAdapter和DataSet获取数据
DataSet objDataset = new DataSet();
SqlDataAdapter objAdapter = new SqlDataAdapter(objCommand);
try
{
// 打开数据库连接
if (objConnection.State == ConnectionState.Closed)
{
objConnection.Open();
}
// 数据填充
objAdapter.Fill(objDataset, "UserSearch");
}
catch (SqlException exp)
{
Session["Error"] = exp.Message;
Response.Redirect("Error.aspx");
}
finally
{
// 关闭数据库连接
if (objConnection.State == ConnectionState.Open)
{
objConnection.Close();
}
}
// 设置数据源
gvUserSearch.DataSource = objDataset.Tables["UserSearch"];
// 绑定数据源
gvUserSearch.DataBind();
}
这段代码的主要业务逻辑是:根据管理员输入的用户名和用户昵称信息,从数据库中查询相应的用户,并在gridview控件中显示查询到的数据结果。这段代码里关于获得连接、创建Command对象和执行查询等方法同用户登录模块中的数据操作方法雷同,但使用了DataAdpater和DataSet获取数据。
使用DataAdapter和DataSet对象获取数据的主要步骤如下。
(1) 创建连接和命令对象,并使用连接对象连接到数据源。
(2) 填充命令对象。这里查询的SQL语句的主干是:SELECT USERS.USERNAME, USERS.NICKNAME, USERS.USEREMAIL, USERROLE.ROLENAME FROM USERS LEFT JOIN USERROLE ON USERS.USERROLE = USERROLE. ROLELEVEL,后面再加上输入的用户名和用户昵称。通过两张表的连接,把用户的用户名、用户昵称和用户权限查询出来。
(3) 使用SqlDataAdapter objAdapter = new SqlDataAdapter(objCommand)语句,根据Command对象创建DataAdapter对象。
(4) 使用objAdapter.Fill(objDataset, "UserSearch");语句(这里UserSearch是数据表名)将查询结果填充到DataSet对象中。
另外,在本界面里还用到了gridview对象来显示查询结果。通过gvUserSearch.DataSource = objDataset.Tables["UserSearch"]语句来设置gridview的数据源,通过gvUserSearch.DataBind ()来绑定数据源。这样,由于有了绑定关系,一旦使用SqlDataAdapter对象从数据库中获得数据,在gridview里就能显示查询结果。