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; }
}
}