【C#】winfrom得到編號,顯示對應的其他表的名稱
阿新 • • 發佈:2019-01-31
很多情況例如得到的是編號,需要顯示對應其他表的名稱
需要顯示制單人,稽核人名稱,
提示:業務員是t_emp_info,制單人和稽核人都是同一個表 t_sys_user
//所有獲取資料庫裡 t_sys_user,和T_emp_info表的資料
//呼叫方法 ygInfo =allInfo("select emp_no as code,emp_name as name from t_emp_info where emp_no <> '0'");//員工資訊//operInfo=allInfo("select user_id as code, user_name as name from t_sys_user where user_id <> '0'");//操作員資訊
public DataTable allInfo(String Sql)
{
DataTable dtEmpInfo = new DataTable();
try
{
con.Open();
DataSet dsEmpInfo = new DataSet();
//string sqlEmpInfo = "select emp_no,emp_name from t_emp_info";
SqlDataAdapter sdaEmpInfo = new SqlDataAdapter(Sql, con);
sdaEmpInfo.Fill(dsEmpInfo);
dtEmpInfo = dsEmpInfo.Tables[0];
}
catch (Exception ex)
{
MessageBox.Show("empInfo()獲取員工資料失敗,錯誤原因"+ex.Message);
}
finally
{
con.Close();
}
return dtEmpInfo;
}
/// <summary>
/// 軟體裡得到的都是編號,用來顯示對應的名稱
/// </summary>
/// <param name="dgv"> 用來判斷哪個DataGridView需要顯示</param>
/// <param name="datatable1">SQL查詢資料庫得到的資料</param>
/// <param name="dt2">用來判斷是顯示業務員表的資料還是操作員表的資料</param>
/// <param name="lname">用來判斷得到資料庫裡的資料是業務員還是操作員</param>
/// <param name="type">用來判斷是哪個列來顯示</param>
public void getName(DataGridView dgv,DataTable datatable1,DataTable dt2,string lname,string type)
{
int row = dgv.Rows.Count;//得到總行數
int row2 = dt2.Rows.Count;//得到總行數
string ywy = "";
string ywy2 = "";
string name = "";
for (int i = 0; i < row; i++)//得到總行數並在之內迴圈
{
ywy = datatable1.Rows[i][lname].ToString().Trim();
for (int j = 0; j < row2; j++)
{
ywy2 = dt2.Rows[j]["code"].ToString().Trim();
name= dt2.Rows[j]["name"].ToString().Trim();
if (ywy == ywy2)
{
dgv.Rows[i].Cells[type].Value = name;
}
}
}
}
//呼叫案例
getName(dgvOrderHZ, datatable1, ygInfo, "deal_man", "業務員");
getName(dgvOrderHZ, datatable1, operInfo, "user_id", "制單人");
getName(dgvOrderHZ, datatable1, operInfo, "app_user", "稽核人");