using System; using System.Data; using System.Diagnostics; using System.IO; using System.Text; using System.Windows.Forms; using DevComponents.DotNetBar; namespace Cyberpipe { public partial class FrmLogManager : Office2007Form { public FrmLogManager() { InitializeComponent(); } /// <summary> /// 窗体初始化事件处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Frm_LogManager_Load(object sender, EventArgs e) { dataGridView1.ReadOnly = true; datetime1.Checked = false; datetime2.Checked = false; string sql = " select * from 日志管理 order by \"异常日期\" desc"; DataTable table = OledbHelper.QueryTable(sql); if (table == null) { MessageBox.Show("数据库中没有日志信息!", "提示"); return; } dataGridView1.DataSource = table; } /// <summary> /// 查询按钮事件处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_Query_Click(object sender, EventArgs e) { string sql = " select * from 日志管理 "; if (datetime1.Checked || datetime2.Checked) { if (datetime1.Checked && datetime2.Checked == false) { sql += " where \"异常日期\" >= to_date('" + datetime1.Value.ToString("yyyy-MM-dd") + "','yyyy-MM-dd')"; } else if (datetime2.Checked && datetime1.Checked == false) { sql += " where \"异常日期\" <= to_date('" + datetime2.Value.ToString("yyyy-MM-dd") + "','yyyy-MM-dd')"; } else { sql += " where \"异常日期\" between to_date('" + datetime1.Value.ToString("yyyy-MM-dd") + "','yyyy-MM-dd') and to_date('" + datetime2.Value.ToString("yyyy-MM-dd") + "','yyyy-MM-dd')"; } } try { DataTable table = OledbHelper.QueryTable(sql); if (table != null) { dataGridView1.DataSource = table; dataGridView1.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells; } else { MessageBox.Show("没有找到任何数据!", "提示"); } } catch (Exception ex) { LogError.PublishError(ex); MessageBox.Show(ex.Message); } } /// <summary> /// 取消按钮事件处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_Cancel_Click(object sender, EventArgs e) { Close(); } /// <summary> /// 表格单元格双击事件处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dataGridView1_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e) { int row = e.RowIndex; if (row >= 0) { string s = ""; for (int i = 0; i < dataGridView1.Columns.Count; i++) { s += dataGridView1.Columns[i].HeaderText + ":"; s += dataGridView1.Rows[row].Cells[i].Value + "\r\n"; } FrmLogDescription frm = new FrmLogDescription(s); frm.ShowDialog(); } } /// <summary> /// 导出Excel按钮事件处理 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void buttonXExportExcel_Click(object sender, EventArgs e) { if (dataGridView1.Rows.Count > 0) { SaveFileDialog dlg = new SaveFileDialog(); dlg.Filter = "Excel files (*.xls)|*.xls"; dlg.FilterIndex = 0; dlg.RestoreDirectory = true; dlg.Title = "保存为Excel文件"; dlg.FileName = "log" + "-" + DateTime.Now.ToString("yyyyMMdd") + ".xls"; if (dlg.ShowDialog() == DialogResult.OK) { Stream myStream; myStream = dlg.OpenFile(); StreamWriter sw = new StreamWriter(myStream, Encoding.GetEncoding(-0)); string columnTitle = ""; try { sw.WriteLine("内容:Log" + " 日期:" + DateTime.Now.ToString("yyyy-MM-dd")); //写入列标题 for (int i = 0; i < dataGridView1.ColumnCount; i++) { if (i > 0) { columnTitle += "\t"; } columnTitle += dataGridView1.Columns[i].HeaderText; } sw.WriteLine(columnTitle); //写入列内容 for (int j = 0; j < dataGridView1.Rows.Count; j++) { string columnValue = ""; for (int k = 0; k < dataGridView1.Columns.Count; k++) { if (k > 0) { columnValue += "\t"; } if (dataGridView1.Rows[j].Cells[k].Value == null) columnValue += ""; else columnValue += dataGridView1.Rows[j].Cells[k].Value.ToString().Trim(); } sw.WriteLine(columnValue); } sw.Close(); myStream.Close(); if (MessageBox.Show("导出Excel文件成功!是否打开?", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes) { Process.Start(dlg.FileName); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } finally { sw.Close(); myStream.Close(); } } } } } }