private void BindDataGridView(List <ExRecordModel> list) { if (this.dataGridView1.InvokeRequired) { FlushDataGridView client = new FlushDataGridView(BindDataGridView); this.Invoke(client, list); } else { this.dataGridView1.AutoGenerateColumns = false; this.dataGridView1.DataSource = list; } }
private void LoadData(FlushDataGridView flushDataGridView) { DataGridViewTextBoxColumn dataGridViewTextBoxColumn; DataGridViewCheckBoxColumn dataGridViewCheckBoxColumn; string[] tmpName = cMain.DataShowTitleStr.Split(','); DataSet tmpDs; string sqlCommand = ""; //将机型上下限数据写入到表格2中 if (flushDataGridView == FlushDataGridView.FlushStepData || flushDataGridView == FlushDataGridView.FlushAll) { sqlCommand = string.Format("Select * from initPara where ModeId='{0}' order by StepId", cbbId.Text); tmpDs = cData.readData(sqlCommand, cData.ConnMain); dataGridView2.Rows.Clear(); dataGridView2.Columns.Clear(); for (int i = 0; i < cMain.DataShow; i++) { dataGridViewTextBoxColumn = new DataGridViewTextBoxColumn(); dataGridViewTextBoxColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; dataGridViewTextBoxColumn.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; dataGridViewTextBoxColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dataGridViewTextBoxColumn.HeaderText = tmpName[i]; dataGridViewTextBoxColumn.ValueType = typeof(double); dataGridView2.Columns.Add(dataGridViewTextBoxColumn); } dataGridView2.RowHeadersWidth = 150; if (tmpDs.Tables[0].Rows.Count > 0) { for (int i = 0; i < tmpDs.Tables[0].Rows.Count; i++) { dataGridView2.Rows.Add(); dataGridView2.Rows[i * 2].HeaderCell.Value = string.Format("第{0}步数据下限", i + 1); dataGridView2.Rows[i * 2].DefaultCellStyle.BackColor = Color.Pink; dataGridView2.Rows.Add(); dataGridView2.Rows[i * 2 + 1].HeaderCell.Value = string.Format("第{0}步数据上限", i + 1); dataGridView2.Rows[i * 2 + 1].DefaultCellStyle.BackColor = Color.LightCyan; for (int j = 0; j < cMain.DataShow; j++) { DataRow dr = tmpDs.Tables[0].Rows[i]; dataGridView2.Rows[i * 2].Cells[j].Value = dr[string.Format("Data{0}", j * 2 + 1)]; dataGridView2.Rows[i * 2 + 1].Cells[j].Value = dr[string.Format("Data{0}", j * 2 + 2)]; } } } else { MessageBox.Show(string.Format("当前没有{0}机型参数设置,请先设置{0}机型参数后,再计算上下限", cbbId.Text), "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } //取最后20条数据 if (flushDataGridView == FlushDataGridView.FlushSaveData || flushDataGridView == FlushDataGridView.FlushAll) { sqlCommand = string.Format("Select top 20 * from alldata where Id='{0}' and StepID={1} order by TestTime DESC", cbbId.Text, Num.IntParse(cbbStepId.Text) - 1); tmpDs = cData.readData(sqlCommand, cData.ConnData); dataGridView1.Rows.Clear(); dataGridView1.Columns.Clear(); if (tmpDs.Tables[0].Rows.Count > 0) { txtStepName.Text = tmpDs.Tables[0].Rows[0]["Step"].ToString(); txtMode.Text = tmpDs.Tables[0].Rows[0]["Mode"].ToString(); dataGridView1.RowHeadersWidth = 100; dataGridViewCheckBoxColumn = new DataGridViewCheckBoxColumn(); dataGridViewCheckBoxColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; dataGridViewCheckBoxColumn.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; dataGridViewCheckBoxColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dataGridViewCheckBoxColumn.HeaderText = "是否选用当前行"; dataGridViewCheckBoxColumn.ValueType = typeof(bool); dataGridView1.Columns.Add(dataGridViewCheckBoxColumn); for (int i = 0; i < cMain.DataShow; i++) { dataGridViewTextBoxColumn = new DataGridViewTextBoxColumn(); dataGridViewTextBoxColumn.AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; dataGridViewTextBoxColumn.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; dataGridViewTextBoxColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dataGridViewTextBoxColumn.HeaderText = tmpName[i]; dataGridViewTextBoxColumn.DefaultCellStyle.Format = "0.000"; //dataGridViewTextBoxColumn.ReadOnly = true; dataGridViewTextBoxColumn.ValueType = typeof(double); dataGridView1.Columns.Add(dataGridViewTextBoxColumn); } dataGridView1.Rows.Add(2); dataGridView1.Rows[0].HeaderCell.Value = "下限"; dataGridView1.Rows[1].HeaderCell.Value = "上限"; dataGridView1.Rows[0].Cells[0].ReadOnly = true; dataGridView1.Rows[1].Cells[0].ReadOnly = true; dataGridView1.Rows[1].DefaultCellStyle.BackColor = Color.LightCyan; for (int i = 0; i < tmpDs.Tables[0].Rows.Count; i++) { dataGridView1.Rows.Add(); dataGridView1.Rows[i + 2].HeaderCell.Value = string.Format("{0}", i + 1); for (int j = 0; j < cMain.DataShow; j++) { dataGridView1.Rows[i + 2].Cells[1 + j].Value = tmpDs.Tables[0].Rows[i][string.Format("d{0}", j)]; } if ((i % 2) == 1) { dataGridView1.Rows[i + 2].DefaultCellStyle.BackColor = Color.LightCyan; } } } } timer1.Enabled = true; }