GRIDVIEW在footrow中新增一条数据

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.OleDb;

public partial class Gridview_delete_update : System.Web.UI.Page
{
string constring = System.Configuration.ConfigurationManager.ConnectionStrings["news"].ToString();
string news, newsid;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Bind();
}
}
protected void Bind()
{
string sql = "select * from news";
OleDbConnection con = new OleDbConnection();
con.ConnectionString = constring;
OleDbCommand cmd = new OleDbCommand(sql,con);
OleDbDataAdapter da = new OleDbDataAdapter();
DataSet ds=new DataSet();
da.SelectCommand = cmd;
con.Open();
da.Fill(ds,"news");
GridView1.DataSource = ds.Tables["news"];
GridView1.DataKeyNames = new string[] { "newsid" };
GridView1.DataBind();
GridView2.DataSource = ds.Tables["news"];
GridView2.DataKeyNames = new string[] { "newsid" };
GridView2.DataBind();
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
Bind();
}
protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
{
OleDbConnection con = new OleDbConnection();
con.ConnectionString = constring;
//string sql = "delete * from news where newsid='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
//string sql = "delete * from news where newsid=@newsid";
//测试单元格取值-------------------------------
string newid = ((Label)(GridView1.Rows[e.RowIndex].FindControl("Label1"))).Text;
//string sql = "delete * from news where newsid='" + newid+"'";

        //测试sql.parametercollection-用上面和下面sql的都能成功!
string sql = "delete * from news where newsid=@id";
OleDbCommand cmd = new OleDbCommand(sql, con);
cmd.Parameters.AddWithValue("@id", newid);
//-----------------------------------------




con.Open();
try
{ cmd.ExecuteNonQuery(); }
finally
{ con.Close(); }
Bind();

}
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName == "Insert")
{
GridView1.ShowFooter = true;
Bind();
}
if (e.CommandName == "InsertCancel")
{
GridView1.ShowFooter = false;
Bind();
}
if (e.CommandName == "Save")
//试验结果:系统默认的commandname会先触发row_updating事件,如果没有将按钮列转换成模板列,没有按钮Button2_Click委托事件被触发,只能从该事件中处理程序,而定义模板列后在两个事件中都触发,不过有先有后。

{
TextBox Tid = GridView1.FooterRow.FindControl("TextBox3") as TextBox;
TextBox Tnews = GridView1.FooterRow.FindControl("TextBox4") as TextBox;
newsid = Tid.Text;
news = Tnews.Text;
OleDbConnection con = new OleDbConnection();
con.ConnectionString = constring;
string sql = "insert into news values(@id,@txt)";
OleDbCommand cmd = new OleDbCommand(sql, con);

            cmd.Parameters.AddWithValue("@id", newsid);
cmd.Parameters.AddWithValue("@txt", news);
con.Open();
try
{ cmd.ExecuteNonQuery(); }
finally
{ con.Close(); }
Bind();

        }
}
protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{

    }
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
//newsid = ((TextBox)(GridView1.Rows[e.NewEditIndex].FindControl("TextBox1"))).Text;
//news = ((TextBox)(GridView1.Rows[e.NewEditIndex].FindControl("TextBox2"))).Text;
//newsid=GridView1.Rows[e.NewEditIndex].Cells[0].Text;
//news = GridView1.Rows[e.NewEditIndex].Cells[1].Text;


}
protected void Button1_Click(object sender, EventArgs e)
{


}
protected void Button2_Click(object sender, EventArgs e)//已经转为模板列,保存按钮点击
{
//TextBox Tid = GridView1.FooterRow.FindControl("TextBox3") as TextBox;
//TextBox Tnews = GridView1.FooterRow.FindControl("TextBox4") as TextBox;
//newsid = Tid.Text;
//news = Tnews.Text;
//OleDbConnection con = new OleDbConnection();
//con.ConnectionString = constring;
//string sql = "insert into news values(@id,@txt)";
//OleDbCommand cmd = new OleDbCommand(sql, con);

        //cmd.Parameters.AddWithValue("@id", newsid);
//cmd.Parameters.AddWithValue("@txt", news);
//con.Open();
//try
//{ cmd.ExecuteNonQuery(); }
//finally
//{ con.Close(); }
//Bind();
}
}

转载于:https://www.cnblogs.com/wangyingtao/archive/2008/02/07/1065726.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值