ComputerInfo

来源:互联网 发布:软件行业竞争格局 编辑:程序博客网 时间:2024/05/23 10:58
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;namespace OEMS{    public partial class ComputerInfo : Form    {        DataTable dt = new DataTable();        SqlDataAdapter sda = new SqlDataAdapter();        DataSet ds = new DataSet();//定义全局变量,注意要new,不然后面引用的时候会出现ds为null        DataSet dshardware = new DataSet();        DataSet dswindow = new DataSet();        string ComputerIDforDel;        string connstring = System.Configuration.ConfigurationManager.AppSettings["OEMSconnstring"];       // string connstring = @"server=192.168.1.12;database=OEMS;uid=nb;pwd=1";//连接字符串        public ComputerInfo()        {            InitializeComponent();        }        private void FindToolStripMenuItem_Click(object sender, EventArgs e)        {            clear();            find();            RowsStateChanged();        }//find按钮        private void find()        {            pnHardwareInfo.Focus();//查找框获得焦点,以移除dgv的选中状态,来使得dgv的编辑框内容接受            txtHardwareComputerID.Enabled = false;            txtWindowInfoComputerID.Enabled = false;//禁用ID编辑框,为避免ID错乱            string findvalue = txtFindsomething.Text.Trim();//获得文本框的值            string cbbvalue = cbbfind.SelectedItem.ToString();//获得下拉框的选中值            ds = appCode.DALL.findResult(findvalue, cbbvalue);            dt = ds.Tables[0];            ds.Tables[0].TableName = "ComputerInfo";            dataGridView1.DataSource = dt;        }        //鼠标点击单元格事件        private void dataGridView1_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)        {//鼠标点击单元格事件            RowsStateChanged();//调用方法        }        private void getHardwareInfo(string ComputerID)        {            dshardware = appCode.DALL.findHardwareInfo(ComputerID);//获取Hardwareinfo信息            if (dshardware.Tables[0].Rows.Count > 0)//如果该ds不为空,即没有输入hardwareInfo信息的时候,不做处理            {                txtHardwareComputerID.Text = dshardware.Tables[0].Rows[0]["ComputerID"].ToString();                txtCpu.Text = dshardware.Tables[0].Rows[0]["Cpu"].ToString();                txtMotherboard.Text = dshardware.Tables[0].Rows[0]["Motherboard"].ToString();                txtMotherboardDate.Text = Convert.ToDateTime(dshardware.Tables[0].Rows[0]["MotherboardDate"]).Date.ToShortDateString();//取短时间                txtRAM.Text = dshardware.Tables[0].Rows[0]["Ram"].ToString();                txtHardDisk.Text = dshardware.Tables[0].Rows[0]["HardDisk"].ToString();                txtMonitor.Text = dshardware.Tables[0].Rows[0]["Monitor"].ToString();                txtMonitorDate.Text = Convert.ToDateTime(dshardware.Tables[0].Rows[0]["MonitorDate"]).Date.ToShortDateString();//取短时间            }            else            {                txtboxtdefoult();            }        }//获取到HardwareInfo的dataset并读取内容到txtbox        private void getHardwareTextBoxInfo()        {            if (dshardware.Tables[0].Rows.Count == 0)//这里判断如果dshardware里面有Rows,代表是修改数据,等于0就是没有Rows,就要添加            {                //DataTable dtHardware = new DataTable();                dshardware.Tables[0].Rows.Add();//添加新行,由于在dgv的单元格点击事件中有查询,所以此出已经有表存在,但是没有Rows                          }            dshardware.Tables[0].Rows[0]["ComputerID"] = txtHardwareComputerID.Text;            dshardware.Tables[0].Rows[0]["Cpu"] = txtCpu.Text;            dshardware.Tables[0].Rows[0]["Motherboard"] = txtMotherboard.Text;            dshardware.Tables[0].Rows[0]["MotherboardDate"] = txtMotherboardDate.Text;//取短时间            dshardware.Tables[0].Rows[0]["Ram"] = txtRAM.Text;            dshardware.Tables[0].Rows[0]["HardDisk"] = txtHardDisk.Text;            dshardware.Tables[0].Rows[0]["Monitor"] = txtMonitor.Text;            dshardware.Tables[0].Rows[0]["MonitorDate"] = txtMonitorDate.Text;        }        private void getWindowInfo(string ComputerID)        {            dswindow = appCode.DALL.findWindowInfo(ComputerID);//获取windowInfo信息.            if (dswindow.Tables[0].Rows.Count > 0)//如果该ds为空,即没有输入windowInfo信息的时候,不做处理            {                txtWindowInfoComputerID.Text = dswindow.Tables[0].Rows[0]["ComputerID"].ToString();                txtIPAdress.Text = dswindow.Tables[0].Rows[0]["IPAddress"].ToString();                txtMACAdress.Text = dswindow.Tables[0].Rows[0]["MACAddress"].ToString();                txtComputerName.Text = dswindow.Tables[0].Rows[0]["ComputerName"].ToString();            }        }//获取到WindowInfo的dataset并读取内容到txtbox        private void getWindowTextBoxInfo()        {            if (dswindow.Tables[0].Rows.Count == 0)            {                dswindow.Tables[0].Rows.Add();            }            dswindow.Tables[0].Rows[0]["ComputerID"] = txtWindowInfoComputerID.Text;            dswindow.Tables[0].Rows[0]["IPAddress"] = txtIPAdress.Text;            dswindow.Tables[0].Rows[0]["MACAddress"] = txtMACAdress.Text;            dswindow.Tables[0].Rows[0]["ComputerName"] = txtComputerName.Text;        }        private void clear()//清楚文本框内容        {            txtHardwareComputerID.Clear();            txtCpu.Clear();            txtMotherboard.Clear();            txtMotherboardDate.Text = DateTime.Now.Date.ToShortDateString();            txtRAM.Clear();            txtHardDisk.Clear();            txtMonitor.Clear();            txtMonitorDate.Text = DateTime.Now.Date.ToShortDateString();            txtWindowInfoComputerID.Clear();            txtIPAdress.Clear();            txtMACAdress.Clear();            txtComputerName.Clear();//每次激活此事件前先清理文本框的内容.        }        private void txtboxtdefoult()//清楚文本框内容        {            txtHardwareComputerID.Text = "";            txtCpu.Text = "";            txtMotherboard.Text = "";            txtMotherboardDate.Text = "";            txtRAM.Text = "";            txtHardDisk.Text = "";            txtMonitor.Text = "";            txtMonitorDate.Text = "";            txtWindowInfoComputerID.Text = "";            txtIPAdress.Text = "";            txtMACAdress.Text = "";            txtComputerName.Text = "";        }        private void AddToolStripMenuItem_Click(object sender, EventArgs e)        {            if (ds.Tables.Count != 0)//如果当前ds有内容            {                txtHardwareComputerID.Enabled = true;                txtWindowInfoComputerID.Enabled = true;//启用ID编辑框,为add新数据                ckbMoreInfo.Checked = true;//用来显示隐藏区域的内容                ((DataTable)dataGridView1.DataSource).Rows.Add(dt.NewRow());                dt.Rows[dt.Rows.Count - 1]["DateOfSet"] = DateTime.Now;//给默认字段赋值                dt.Rows[dt.Rows.Count - 1]["DateOfpur"] = "1999-9-9";//给默认字段赋值                dataGridView1.CurrentCell = dataGridView1.Rows[dataGridView1.Rows.Count - 1].Cells[1];//新增行获得焦点                dataGridView1.BeginEdit(false);//新添加的行第一个单元格进入编辑状态            }            else//否则.不做任何处理.            {                return;            }        }        private void DeleteToolStripMenuItem_Click(object sender, EventArgs e)        {            pnHardwareInfo.Focus();            if (ds.Tables.Count == 0)            {                return;            }            int i = dataGridView1.CurrentCell.RowIndex;//得到当前的行号            ComputerIDforDel = dataGridView1.Rows[i].Cells["ComputerID"].Value.ToString();//获取当前要删除行的主键            if ((MessageBox.Show("Are You Sure You Want To Delete? " + dataGridView1.Rows[i].Cells[2].Value                + " ?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Question)) == DialogResult.Yes)            {                if (i != -1)                {                    dataGridView1.Rows.Remove(dataGridView1.CurrentRow);                    //ckbIsNoDelete.Checked = true;                    clear();                    try                    {                        appCode.DALL.DeleteInfo(ComputerIDforDel, "HardwareInfo");                        appCode.DALL.DeleteInfo(ComputerIDforDel, "WindowInfo");                        appCode.others.UpdateByDataSet(ds, "ComputerInfo", connstring);                        MessageBox.Show("Successfully Saved!", "Prompt", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);                                            }                    catch (Exception ex)                    {                        MessageBox.Show(ex.Message.ToString(), "Error!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);                        return;                    }                }            }        }        private void SaveToolStripMenuItem_Click(object sender, EventArgs e)        {            txtFindsomething.Focus();            int i;            int j;            int k;            if (ckbMoreInfo.Checked)//选中了显示全部的选项            {                if (ckbIsNoDelete.Checked)//判断是不是要错删除操作                {                    //try                    //{                    //    appCode.DALL.DeleteInfo(ComputerIDforDel, "HardwareInfo");                    //    appCode.DALL.DeleteInfo(ComputerIDforDel, "WindowInfo");                    //    appCode.others.UpdateByDataSet(ds, "ComputerInfo", connstring);                    //    MessageBox.Show("Successfully Saved!", "Prompt", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);                    //    return;                    //}                    //catch (Exception ex)                    //{                    //    MessageBox.Show(ex.Message.ToString(), "Error!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);                    //    return;                    //}                }                //走到这里说明不是删除操作,是更新操作,这里没有判断是否有更改txtbox的值,全部提交                if (ds.HasChanges())//如果dataset有更改过,要这一步主要是用来确定是不是添加操作,如果是添加操作,先执行了这一步,下面那2个表才有外键关联.                {                    i = appCode.others.UpdateByDataSet(ds, "ComputerInfo", connstring);                    if (i != 0)                    {                        MessageBox.Show("Save Failed...", "Prompt", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);                        return;                    }                }                try                {                    getHardwareTextBoxInfo();//将文本框的值写入Dataset                    getWindowTextBoxInfo();                }                catch                {                    MessageBox.Show("You Set A Wrong Date!", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);                    return;                };                j = appCode.others.UpdateByDataSet(dshardware, "HardwareInfo", connstring);//更新dataset                k = appCode.others.UpdateByDataSet(dswindow, "WindowInfo", connstring);                if (k == 0 && j == 0)                {                    MessageBox.Show("Successfully Saved!", "Prompt", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);                }                else                {                    MessageBox.Show("Save Failed...", "Prompt", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);                    return;                }            }            else            {                MessageBox.Show("This Is Not Delete Time!Save Failed...", "Warning!", MessageBoxButtons.OK, MessageBoxIcon.Warning);                return;            }        }        private void ckbMoreInfo_CheckedChanged(object sender, EventArgs e)        {            if (ckbMoreInfo.Checked == false)            {                this.Width = 512;                clear();                this.CenterToScreen();            }            else            {                this.Width = 922;                this.CenterToScreen();                RowsStateChanged();            }        }        private void ComputerInfo_Load(object sender, EventArgs e)        {                        find();        }        private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)        {            //string id = dataGridView1.Rows[dataGridView1.CurrentCell.RowIndex].Cells[1].Value.ToString();            //txtHardwareComputerID.Text = id;            //txtWindowInfoComputerID.Text = id;        }        private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)        {            //try            //{            //    rowindex = dataGridView1.SelectedCells[0].RowIndex;            //    columnindex = dataGridView1.SelectedCells[0].ColumnIndex;            //}            //catch            //{            //}        }        private void dataGridView1_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)        {        }        private void RowsStateChanged()//行获得焦点,焦点更改事件        {            dshardware.Tables.Clear();            dswindow.Tables.Clear();            try            {                if (ckbMoreInfo.Checked)                {                    //clear();//清楚当前文本框的内容                    int index = dataGridView1.CurrentCell.RowIndex;//当前获得光标的是哪一行                    string ComputerID = dataGridView1.Rows[index].Cells["ComputerID"].Value.ToString();//获得当前行的主键是                    getHardwareInfo(ComputerID);                    dshardware.Tables[0].TableName = "HardwareInfo";                    getWindowInfo(ComputerID);                    dswindow.Tables[0].TableName = "WindowInfo";                    if (dshardware.Tables[0].Rows.Count==0)//如果没有查询到数据,将ID编辑框打开,以便可以输入数据                    {                        txtHardwareComputerID.Enabled = true;                        txtWindowInfoComputerID.Enabled = true;//启用ID编辑框,为add新数据                    }                }            }            catch            {            }        }        private void QuitToolStripMenuItem_Click(object sender, EventArgs e)        {            this.Close();        }        //删除的时候创建删除hardinfo的sql语句.在删除确认的时候先clear,执行删除hardinfo的方法.最后调用computerinfo的update方法    }}