就算一行一行的添加数据,那也是需要绑定数据源的,要实现逐行添加数据不是不可以实现,只是真的没明白为啥要这样做。。。
比如下面代码:
//定义数据源 table
public static DataTable Cpdt
//页面加载
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Cpdt = new DataTable()
Createbt()
GridView1.DataSource = Cpdt
GridView1.DataBind()
}
}
//根据自己需求创建表
void Createbt()
{
DataColumn mycol = new DataColumn()
Cpdt.Columns.Add(new DataColumn("CPID", typeof(Int32)))
Cpdt.Columns.Add(new DataColumn("CPNAME", typeof(String)))
Cpdt.Columns.Add(new DataColumn("CPDJ", typeof(Single)))
Cpdt.Columns.Add(new DataColumn("SL", typeof(Int32)))
Cpdt.Columns.Add(new DataColumn("CPSUM", typeof(Double)))
Cpdt.AcceptChanges()
Cpdt.PrimaryKey = new DataColumn[] { Cpdt.Columns[0] }
Cpdt.AcceptChanges()
}
//比如点击button的时候添加一条数据
protected void Button1_Click(object sender, EventArgs e)
{
DataRow myrow = Cpdt.NewRow()
if (Cpdt.Rows.Count==0)
{
myrow[0] = 1
}
else
{
myrow[0] = int.Parse(Cpdt.Rows[Cpdt.Rows.Count-1][0].ToString()) + 1
}
myrow[1] = 2
myrow[2] = 3
myrow[3] = 4
Cpdt.Rows.Add(myrow)
var mm = Cpdt.AsEnumerable().Sum(p =>Convert.ToDouble(p["SL"]))
//Label3.Text = mm.ToString()
Cpdt.AcceptChanges()
GridView1.DataSource = Cpdt
GridView1.DataBind()
}
1、点击添加,实例化一个DataGridView的行对象DataRow 然后把这个对象添加到DataGridView中,你的DataGridView要是可编辑状态,然后编辑数据,点保存循环读取DataGridView的行数据,存到实体类中,在通过后台SQL保存到数据库。
2、将datagridview于数据库中对应的表进行绑定,绑定完成之后直接在datagridview中进行添加就可以,自动在数据库中添加并保存。
3、创建一个表结构,每次新增的时候往表里面加一条记录,然后DataGridView再绑定表就可以了。保存的时候连接数据库+sql就完成了。
4、就是正常的添加就可以了啊。首先连接数据库 而后插入数据库的表。
5、gridview没有自带这种功能,只自带了,编辑删除(也可能是我不知道,我没用过直接可以添加一行新的)你可以模仿一个这样的功能,用js动态添加一行textbox,每个字段对应一个,你把数据添加后,点击保存,就ok了,当然你的动态添加的textbox要在gridview下面,样式要对齐,感觉上是gridview添加了一行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)