c# datagridview控件连接Mysql数据库操作

c# datagridview控件连接Mysql数据库操作

此程序功能小白也可顺利实现

项目需要,开始学习c#,接触到了datagridview控件,此处是连接mysql数据库的操作。

1.拖入控件到winform

c# datagridview控件连接Mysql数据库操作_第1张图片
在这里我单独在控件的列里输入了我需要加载数据的表头
点击添加列,然后添加自己要添加的内容,在headertext栏中输入即可。c# datagridview控件连接Mysql数据库操作_第2张图片
再就是数据库的生成

我用的是Navicat Premium,点击连接->Mysql->输入连接名和用户名、密码,密码为你的mysql密码,主机名不变,为localhost。
c# datagridview控件连接Mysql数据库操作_第3张图片

2.创建数据库

在刚刚成功建立的连接下右键新建数据库,这里的数据库名要记住。c# datagridview控件连接Mysql数据库操作_第4张图片

然后添加表,这里不多说。我的表贴在下面

3.代码部分

public partial class ViewForSql : Form
//我的数据库名是metrodataprocess,注意不是连接名!
string connectStr = "server=127.0.0.1;port=3306;user=root;password=199711;database=metrodataprocess;";
public ViewForSql()
        {
            InitializeComponent();
            Adapt();  //使控件宽度自适应
            ConnectView(); //连接数据库操作
        }
        //这段也是我刚从网上拷贝的hhh
public void Adapt()
        {
            int width = 0;
            for (int i = 0; i < this.dataGridView1.Columns.Count; i++)
            {
                this.dataGridView1.AutoResizeColumn(i, 	DataGridViewAutoSizeColumnMode.AllCells);
                width += this.dataGridView1.Columns[i].Width;
            }
            if (width > this.dataGridView1.Size.Width)
            {
                this.dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells;
            }
            else
            {
                this.dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
            }
public void ConnectView()
        {
            MySqlConnection conn = new MySqlConnection(connectStr); //新建连接
            try
            {
                conn.Open();
                MessageBox.Show("已经建立连接");   //连接成功则显示对话框,调试用这个贼爽
                string sqlCmd = "select * from inclinometer";     //from后面的是自己创建的表
                MySqlCommand cmd = new MySqlCommand(sqlCmd, conn);
                MySqlDataReader reader = cmd.ExecuteReader();
                while (reader.Read())
                {
                    int index = this.dataGridView1.Rows.Add();
                    this.dataGridView1.Rows[index].Cells[0].Value = reader.GetString("区号");
                    this.dataGridView1.Rows[index].Cells[1].Value = reader.GetString("孔号");
                    this.dataGridView1.Rows[index].Cells[2].Value = reader.GetString("孔深");
                    this.dataGridView1.Rows[index].Cells[3].Value = reader.GetString("组号");
                    this.dataGridView1.Rows[index].Cells[4].Value = reader.GetString("正反测");
                    this.dataGridView1.Rows[index].Cells[5].Value = reader.GetString("最大孔深");
                    this.dataGridView1.Rows[index].Cells[6].Value = reader.GetString("电压");
                    this.dataGridView1.Rows[index].Cells[7].Value = reader.GetString("位移");
                    this.dataGridView1.Rows[index].Cells[8].Value = reader.GetString("时间");
                }
            catch (MySqlException ex)
            {
                MessageBox.Show(ex.Message);
            }
            finally
            {
                conn.Close();
            }
       }

下面是我的数据表格式

c# datagridview控件连接Mysql数据库操作_第5张图片

显示结果

c# datagridview控件连接Mysql数据库操作_第6张图片
控件右边显示的还是不完美,明天我再看看。

或者直接在代码部分操作datagridview的数据源

只需将try语句里的代码更换,最后三行是需要更改的代码。


		conn.Open();
                MessageBox.Show("已经建立连接");
                string sqlCmd = "select * from inclinometer";
                MySqlCommand cmd = new MySqlCommand(sqlCmd, conn);
                MySqlDataReader reader = cmd.ExecuteReader();
                
		BindingSource bs = new BindingSource();
                bs.DataSource = reader;
                this.dataGridView1.DataSource = bs;

你可能感兴趣的:(mysql,c#,datagridview)