c#dataGridView里面自动成数据

我怎么在文本框里输入最大和最小dataGridView里面自动成数据。比如开始是1,结束是100,自动生成100列数字。

直接填充DataTable,然后设置dgv的DataSource,而且是生成100行数据吧?生成100列,那生成几行数据?
测试代码如下,需要工程文件请发站内短信

img

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            int min = 0, max=0;
            if (txtMin.Text == "" || !int.TryParse(txtMin.Text, out min)) { MessageBox.Show("最小值为数字!"); txtMin.Select(); return; }
            if (txtMax.Text == "" || !int.TryParse(txtMax.Text, out max) || max < min) { MessageBox.Show("最大值为数字并且大于最小值!"); txtMax.Select(); return; }
            DataTable dt = new DataTable();
            //生成1列,数据max-min+1行
            dt.Columns.Add("col1");
            for (var i = min; i <= max; i++) dt.Rows.Add(i);
            dataGridView1.DataSource = dt;

        }

        private void button1_Click(object sender, EventArgs e)
        {
            int min = 0, max = 0;
            if (txtMin.Text == "" || !int.TryParse(txtMin.Text, out min)) { MessageBox.Show("最小值为数字!"); txtMin.Select(); return; }
            if (txtMax.Text == "" || !int.TryParse(txtMax.Text, out max) || max < min) { MessageBox.Show("最大值为数字并且大于最小值!"); txtMax.Select(); return; }
            DataTable dt = new DataTable();
            //生成max-min+列,数据1for (var i = min; i <= max; i++)
            {
                dt.Columns.Add("col"+i);
            }
            DataRow dr = dt.NewRow();
            int index = 0;
            while (min <= max) {
                dr[index++] = min;
                min++;
            }
            dt.Rows.Add(dr);
            dataGridView1.DataSource = dt;
        }
    }
}


有帮助麻烦点下【采纳该答案】,谢谢~~有其他问题可以继续交流~

你是要dataGridView 动态列?

不用操作数据库吗?数据是怎么来的呢?

你这个 我能想到的是 求结束减去开始 然后循环 添加值到List中 然后行转列

img

 int a = Convert.ToInt32(this.textBox1.Text.Trim());
            int b = Convert.ToInt32(this.textBox2.Text.Trim());
            List<Model> ModelList = new List<Model>();
            for (int i = 0; i < (b - a + 1); i++)
            {
                Model model = new Model();
                model.ID = (a + i).ToString();
                ModelList.Add(model);
            }
            DataTable table = new DataTable();//1.
            for (int i = 0; i < ModelList.Count; i++)
            { //2.获取表头:此处将第一列当成表头
                string ColName = ModelList[i].ID;//将每一行的第一列的值 赋值给变量
                //string ColName=dsTemp.Tables[0].Rows[i]["列名字段"].ToString(); //这种写法也行,写法不唯一
                table.Columns.Add(ColName);//将变量塞入表头中:这样循环就获取了表头
            }
   dataGridView1.DataSource = table;