我的代码是
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();
答案 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.
}