【序文】
前のブログでは、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("没有查询到上机记录!");
}
}