如何将对象绑定到gridview

时间:2015-01-31 19:09:49

标签: asp.net gridview

我的代码是

public Emp GetEmpByEmpno(int empno)
{
    using (con)
    {
        if (con.State == ConnectionState.Closed)
        {
            con.ConnectionString = constr;
            con.Open();
        }
        cmd.CommandText = "sp_emp_GetempByEmpno";
        cmd.Parameters.Clear();
        cmd.Parameters.AddWithValue("@eno",empno);
        dr=cmd.ExecuteReader();
        Emp obj=null;

        while(dr.Read())
        {
            obj=new Emp();
            obj.Empno=int.Parse(dr["Empno"].ToString());
            obj.Ename=dr["Ename"].ToString();
            obj.Sal=dr["Sal"].ToString();
            obj.Deptno=int.Parse(dr["Deptno"].ToString());

        }

        return obj;
    }
}

这里我根据员工编号获取记录,每当我在文本框搜索按钮onClick中传递empno时,相应的员工应该在网格视图中显示。如何将对象绑定到网格视图?

Employee obj=EmpDeptBus.GetEmployeeByEmpno(int.Parse(txtEmpno.Text));            
gvemp.DataSource = c;
gvemp.DataBind();

1 个答案:

答案 0 :(得分:1)

你应该能够说出

gvemp.DataSource = obj;

这就是绑定对象所需的全部内容。 另外,改变你的

while(dr.Read())

if(dr.Read())

你只期待一个记录,所以只获取一个。还要将你的返回物品放在你的使用之外,以确保在你返回调用功能之前一切都已妥善处理。

尝试确保txtEmpno.Text在您尝试将其传递给此方法之前保存一个int值,否则它会爆炸。永远不要相信用户输入。你可以这样做:

int empNo = 0;
if(int.TryParse(txtEmpNo.Text.Trim(), out empNo)
{
 //   then call the function and bind your grid using the empNo as the 
 // variable holding the employee number.
}
else
{
  // otherwise handle the fact that the user entered a non-numeric.
}