f1

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 MySql.Data.MySqlClient;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public string assignee = "wwx391503";
        public DataTable GetDataTable(string sql) {
            
            MySqlConnection conn = new MySqlConnection("server=localhost;user id=root;password=123456;database=jian");
            MySqlCommand cmd = conn.CreateCommand();//命令对象(用来封装需要在数据库执行的语句)
            cmd.CommandText = sql;//设置sql文本

            //第一种方式,用数据适配器
            MySqlDataAdapter sda = new MySqlDataAdapter(cmd);
            DataTable dt = new DataTable();
            sda.Fill(dt);//这里也可以把数据查询结果填充到DataSet中
            return dt;

        }

        /// <summary>
        /// 建立数据库连接.
        /// </summary>
        /// <returns>返回MySqlConnection对象</returns>
        public MySqlConnection getmysqlcon()
        {
            string M_str_sqlcon = "server=localhost;user id=root;password=123456;database=jian"; //根据自己的设置
            MySqlConnection myCon = new MySqlConnection(M_str_sqlcon);
            return myCon;
        }

        #region  执行MySqlCommand命令
        /// <summary>
        /// 执行MySqlCommand
        /// </summary>
        /// <param name="M_str_sqlstr">SQL语句</param>
        public void getmysqlcom(string M_str_sqlstr)
        {
            MySqlConnection mysqlcon = this.getmysqlcon();
            mysqlcon.Open();
            MySqlCommand mysqlcom = new MySqlCommand(M_str_sqlstr, mysqlcon);
            mysqlcom.ExecuteNonQuery();
            mysqlcom.Dispose();
            mysqlcon.Close();
            mysqlcon.Dispose();
        }
        #endregion


        #region  创建MySqlDataReader对象
        /// <summary>
        /// 创建一个MySqlDataReader对象
        /// </summary>
        /// <param name="M_str_sqlstr">SQL语句</param>
        /// <returns>返回MySqlDataReader对象</returns>
        public MySqlDataReader getmysqlread(string M_str_sqlstr)
        {
            MySqlConnection mysqlcon = this.getmysqlcon();
            MySqlCommand mysqlcom = new MySqlCommand(M_str_sqlstr, mysqlcon);
            mysqlcon.Open();
            MySqlDataReader mysqlread = mysqlcom.ExecuteReader(CommandBehavior.CloseConnection);
            return mysqlread;
        }
        #endregion




        public Form2 F2 = new Form2("wwx391503");
        public Form1()
        {
            InitializeComponent();
        }

        private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {

        }

        private void 设置备注信息ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            F2.ShowDialog();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string sql = string.Format("select * from test where assignee = '{0}'", this.assignee);
            DataTable dt =  GetDataTable(sql);
            //MessageBox.Show(sql);
            dataGridView1.DataSource = dt;
            DataTableReader dr = dt.CreateDataReader();
            while (dr.Read()) {
                //MessageBox.Show(dr[0].ToString());
            }
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            string incident_id = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells[0].Value.ToString();
            DataTable dt = GetDataTable(string.Format("select * from test where assignee = '{0}'", this.assignee));
            IList<Incident> incidentList = GetEntities<Incident>(dt);
            IList<string> idList = new List<string>();
            foreach (Incident tmp in incidentList) {
                idList.Add(tmp.Id);
            }
            //DataTableReader dr = dt.CreateDataReader();
            //while (dr.Read()) {

            //}
            int index = -1;
            SortOrder sortOrder = dataGridView1.SortOrder;
            if (sortOrder.ToString() != "None")
            {
                DataGridViewColumn iColumn = dataGridView1.SortedColumn;
                index = iColumn.Index;
            }

            dataGridView1.DataSource = dt;
            if (index != -1) {
                if (sortOrder.ToString() == "Ascending")
                {
                    dataGridView1.Sort(dataGridView1.Columns[index], ListSortDirection.Ascending);
                }
                else {
                    dataGridView1.Sort(dataGridView1.Columns[index], ListSortDirection.Descending);
                }
            }

            if (idList.Contains(incident_id)) {
                int i = idList.IndexOf(incident_id);
                dataGridView1.Rows[i].Selected = true;
                this.dataGridView1.CurrentCell = this.dataGridView1[0, i];
                this.dataGridView1.BeginEdit(true);
            }

        }

        public static T GetEntity<T>(DataTable table) where T : new()
        {
            T entity = new T();
            foreach (DataRow row in table.Rows)
            {
                foreach (var item in entity.GetType().GetProperties())
                {
                    if (row.Table.Columns.Contains(item.Name))
                    {
                        if (DBNull.Value != row[item.Name])
                        {
                            item.SetValue(entity, Convert.ChangeType(row[item.Name], item.PropertyType), null);
                        }

                    }
                }
            }

            return entity;
        }

        public static IList<T> GetEntities<T>(DataTable table) where T : new()
        {
            IList<T> entities = new List<T>();
            foreach (DataRow row in table.Rows)
            {
                T entity = new T();
                foreach (var item in entity.GetType().GetProperties())
                {
                    item.SetValue(entity, Convert.ChangeType(row[item.Name], item.PropertyType), null);
                }
                entities.Add(entity);
            }
            return entities;
        }


    }

    public class Incident {
        string id;
        string problem_status;
        string update_status;
        string assignee;
        string open_tiem;
        string update_time;
        string type;
        string msg;

        public string Id { get => id; set => id = value; }
        public string Problem_status { get => problem_status; set => problem_status = value; }
        public string Update_status { get => update_status; set => update_status = value; }
        public string Assignee { get => assignee; set => assignee = value; }
        public string Open_tiem { get => open_tiem; set => open_tiem = value; }
        public string Update_time { get => update_time; set => update_time = value; }
        public string Type { get => type; set => type = value; }
        public string Msg { get => msg; set => msg = value; }
    }
}



posted @ 2017-07-07 07:32  我的大金金  阅读(221)  评论(0)    收藏  举报