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;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
private static DataTable dtSource = CreateTableStruct();//存储数据源
//创建表结构
private static DataTable CreateTableStruct()
{
DataTable dt = new DataTable(); //创建一个DataTable
DataColumn column; //声明一个DataColumn
column = new DataColumn(); // 创建一个 列
column.DataType = System.Type.GetType("System.Boolean");//声明列的类型
column.ColumnName = "checkOver"; //设置列名称
dt.Columns.Add(column); //添加到表中
column = new DataColumn(); //创建一个列
column.DataType = System.Type.GetType("System.String");//声明列的类型
column.ColumnName = "ID"; //设置列的名称
dt.Columns.Add(column); //添加到表中
column = new DataColumn(); //创建一个列
column.DataType = System.Type.GetType("System.String");//声明列的类型
column.ColumnName = "姓名"; //设置列的名称
dt.Columns.Add(column); //添加到表中
column = new DataColumn(); //创建一个列
column.DataType = System.Type.GetType("System.String");//声明列的类型
column.ColumnName = "年龄"; //设置列的名称
dt.Columns.Add(column); //添加到表中column = new DataColumn(); //创建一个列
column.DataType = System.Type.GetType("System.String");//声明列的类型
column.ColumnName = "性别"; //设置列的名称
dt.Columns.Add(column); //添加到表中
return dt;
}
//创建数据
private void CreateData(int createCount)
{
int alreadyRows = dtSource.Rows.Count; //获取数据源中最大行数
int baseRowNum = 0; //存储当前中最大的ID号
if (alreadyRows > 0)
{
try
{
baseRowNum = int.Parse(dtSource.Rows[alreadyRows - 1][1].ToString());//获取最大的行号
}
catch (Exception ex)
{
MessageBox.Show(ex.Message); //显示错误信息
return;
}
}
DataRow row; //声明一个行号
for (int i = baseRowNum; i < baseRowNum + createCount; i++) //创建行数
{
row = dtSource.NewRow();
row["checkOver"] = true;
row["ID"] = (i + 1);
row["姓名"] = "姓名" + (i + 1);
row["年龄"] = "年龄" + (i + 1);
row["性别"] = "性别" + (i + 1);
dtSource.Rows.Add(row);
}
dataGridView1.DataSource = dtSource; //绑定数据源
}
// 创建行数
private void button3_Click(object sender, EventArgs e)
{
if (textBox1.Text.Trim().Length > 0) //如果输入不为空
{
int rownum = 0; //存储输入的行数
rownum = int.Parse(textBox1.Text); //用户输入转化行数
CreateData(rownum); //调用创建数据源的方法创建rownum行数据
}
else
{
MessageBox.Show("请输入需要创建的行数"); //提示出错
}
}
//删除数据
private void button2_Click(object sender, EventArgs e)
{
if (textBox2.Text.Trim().Length > 0) //如果输入不为空
{
int rownum = 0; //存储需要上出的行数
try
{
rownum = int.Parse(textBox2.Text); //获取需要删除的行数
int sourceCount = dtSource.Rows.Count; //获取数据源的行数
if (rownum > sourceCount) //判断是否有这么多行
{
MessageBox.Show("输入行数超过了总行数"); //提示错误
}
else
{
dtSource.Rows.RemoveAt(rownum - 1);
dataGridView1.DataSource = dtSource;
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
else
{
MessageBox.Show("请输入需要删除的行数"); //提示错误
}
}
//填充combox控件
public void FillCombox()
{
// comboBox1.Items.Add("男");
// comboBox1.Items.Add("女");
}
//添加事件
private void button1_Click(object sender,EventArgs e)
{
if (textBox3.Text.Trim().Length < 0) //判断是否输入姓名
{
MessageBox.Show("请输入姓名");
}
else if(textBox5.Text.Trim().Length <0)
{
MessageBox.Show("请输入年龄");
}
else if (comboBox1.SelectedItem == null)
{
MessageBox.Show("请选择性别");
}
else
{
DataRow newR = dtSource.NewRow(); //创建一个新行
int alreadyRows = dtSource.Rows.Count; //获取数据源中的总行数
int baseRowNum = 0; //存储当前最大的ID号
if(alreadyRows > 0)
{
try
{
baseRowNum = int.Parse(dtSource.Rows[alreadyRows - 1][1].ToString()); //获取最大的行号
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
return;
}
}
newR["checkOver"] = true; //设置新建行
newR["ID"] = (baseRowNum + 1);
newR["姓名"] = textBox3.Text;
newR["年龄"] = textBox5.Text;
newR["性别"] = comboBox1.SelectedItem.ToString();
dtSource.Rows.Add(newR); //添加到数据源
dataGridView1.DataSource = dtSource; //绑定数据源
}
}
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
comboBox1.Items.Add("男");
comboBox1.Items.Add("女");
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
comboBox1.DropDownStyle = ComboBoxStyle.DropDownList;
comboBox1.Items.Add("男");
comboBox1.Items.Add("女");
}
private void textBox3_TextChanged(object sender, EventArgs e)
{
}
private void textBox5_TextChanged(object sender, EventArgs e)
{
}
private void button1_Click_1(object sender, EventArgs e)
{
}
private void button2_Click_1(object sender, EventArgs e)
{
}
private void button3_Click_1(object sender, EventArgs e)
{
}
private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
}
}
}
上面是我的代码,我的程序总是报这个错误,我真的解决不了,我是个菜鸟,求大神指教啊