C#コンピュータールームの再構築-コンピューターレコードの表示

【序文】

前のブログでは、DataGridViewコントロールを使用してデータソースをバインドしてデータを表示する方法を紹介しました。以下は、データソースをDataGirdViewコントロールにバインドする必要がなく、コードを介してDataGirdViewテーブル内のデータを直接表示する別のメソッドを紹介します。

【インターフェース設計】

 

ユーザーは直接カード番号を使用してログインします。コンピューターのレコードを照会する場合、ユーザーは自分の番号のみを照会でき、他のユーザーは照会できません。そのため、ラベルを直接使用して現在のログインカード番号を表示します。 

【コード】

ファクトリーレイヤー

    public class LineInfoFactory
    {
        //获取配置文件
        string strDB = System.Configuration.ConfigurationManager.AppSettings["DB"];
        public ILineInfo lineInfo()
        {
            string className = strDB + "." + "LineInfoDAL";
            ILineInfo idal= (ILineInfo)Assembly.Load(strDB).CreateInstance(className);
            return idal;
        }
    }

 IDAL层

    public interface ILineInfo
    {
        //查询上机记录
        DataTable queryLineInfo(string cardNo);
    }

DALレイヤー

 public class LineInfoDAL : ILineInfo
    {
        //实例化SqlHelper类
        SqlHelper sqlHelper = new SqlHelper();

        //查询上机记录
        public DataTable queryLineInfo(string cardNo)
        {
            SqlParameter[] sqlParams =
            {
                new SqlParameter("@cardno",cardNo),
            };
            string sqlQuery = @"select cardno,ondatetime,offdatetime,consumetime,consumecash,status,computer from [Line_Info] where cardno=@cardNo and status='已下机'";
            DataTable table = sqlHelper.ExecuteQuery(sqlQuery, sqlParams, CommandType.Text);
            return table;
        }
    }

BLLレイヤー

 public class LineInfoBLL
    {
        //查询上机记录
        public DataTable queryLineInfo(string cardNo)
        {
            //实例化一个工厂层
            LineInfoFactory lineFact = new LineInfoFactory();
            //接收工厂层返回的接口
            ILineInfo idal= lineFact.lineInfo();
            DataTable table= idal.queryLineInfo(cardNo);
            return table;
        }
    }

ファサード层

    public class LineInfoFacade
    {
        //查看上机记录
        public DataTable queryLineInfo(string cardNo)
        {
            //实例化B层
            LineInfoBLL lineBll = new LineInfoBLL();
            DataTable table= lineBll.queryLineInfo(cardNo);
            return table;
        }
    }

UI层

private void btnQuery_Click(object sender, EventArgs e)
        {
            string cardNo = lblCardNo.Text.Trim();
            //实例化外观层
            LineInfoFacade lineFac = new LineInfoFacade();
            //接收外观层传过来的值
            DataTable table = lineFac.queryLineInfo(cardNo);
            int j = table.Rows.Count;
            if (table.Rows.Count > 0)
            {
                //指定DataGridView控件的行数
                dataGridView1.RowCount = j;
                int i = 0;
                while (i < j)
                {
                    dataGridView1.Rows[i].Cells[0].Value = table.Rows[i][0];
                    dataGridView1.Rows[i].Cells[1].Value = table.Rows[i][1];
                    dataGridView1.Rows[i].Cells[2].Value = table.Rows[i][2];
                    dataGridView1.Rows[i].Cells[3].Value = table.Rows[i][3];
                    dataGridView1.Rows[i].Cells[4].Value = table.Rows[i][4];
                    dataGridView1.Rows[i].Cells[5].Value = table.Rows[i][5];
                    dataGridView1.Rows[i].Cells[6].Value = table.Rows[i][6];
                    i++;
                }
            }
            else
            {
                MessageBox.Show("没有查询到上机记录!");
            }
        }

 

おすすめ

転載: blog.csdn.net/wtt15100/article/details/107015583