0

我有两层,一个从数据库获取结果的数据层和一个在标签控件中显示数据的 UI 层这是数据层的代码

public class Test_DAL
{
    public DataSet getEMP(string name1)
    {

        string conn = System.IO.File.ReadAllText("Connect.txt");
        //string conn="Data Source=.\\sqlexpress;Initial Catalog=pss;Integrated Security=True";
        //string conn = ConfigurationManager.ConnectionStrings["constr"].ToString();
        SqlConnection dbconn = new SqlConnection(conn);
        dbconn.Open();
        SqlDataAdapter da = new SqlDataAdapter();
        da.SelectCommand = new SqlCommand("select * from pss where Emp_code='"+name1+"'", dbconn);
        DataSet ds = new DataSet();
        da.Fill(ds);
        dbconn.Close();
        return ds;
    }

}

并且是UI层的代码

    private void btn_search_Click(object sender, EventArgs e)
    {

        string empcode=txt_empcode.Text;
        Test_DAL obj1= new Test_DAL();
        obj1.getEMP(empcode);
        //dg.DataSource = obj1.getEMP(empcode).Tables[0];


    }

我的问题是如何在标签上显示数据

非常感谢提前

4

2 回答 2

3

你的要求不是很清楚。只是为了让您了解如何做

private void btn_search_Click(object sender, EventArgs e)
    {

        string empcode=txt_empcode.Text;
        Test_DAL obj1= new Test_DAL();
        DataSet ds = obj1.getEMP(empcode);
        //displays the data of row 1 column 1 of table 1
        yourLabel.Text  = ds.Tables[0].Rows[0][0].ToString(); 


    }

注意:这既不是最好的也不是最合适的做事方式。没有任何异常处理等。

于 2013-12-30T10:20:27.957 回答
0

我会让GetEmployeereturn 成为一个实际的Employee类型。

public Employee getEMP(string name1)
{
    // left out some of your code intentionally
    da.SelectCommand = new SqlCommand("select * from pss where Emp_code='"+name1+"'", dbconn);
    DataSet ds = new DataSet();
    da.Fill(ds);
    dbconn.Close();
    return new Employee(ds);
}

并定义一个Employee看起来像的类

public class Employee
{
    public string Name { get; set; }
    /* Other properties ... */ 

    public Employee(DataSet dataset)
    {
        Name = ds.Tables[0].Rows[0][0].ToString();
        // etc
    }
}

这样,您的 UI 层可以与实际对象(实体)对话,而不必为DataSets 中的幻数而烦恼,例如依赖于 UI 中的数据绑定。

private void btn_search_Click(object sender, EventArgs e)
{
    string empcode=txt_empcode.Text;
    Test_DAL obj1= new Test_DAL();

    var employee = obj1.getEMP(empcode);

    dg.DataSource = employee;
}
于 2013-12-30T10:29:16.273 回答