asp.net上拉列表框选择表格名称给sqldatasource+Gridview做参数有选择的打开表,怎么在编辑模式上添入数据后更新数据?求CSDN
asp.net下拉列表框选择表格名称给sqldatasource+Gridview做参数有选择的打开表,如何在编辑模式下添入数据后更新数据?求****高手指点!
本人菜鸟,写了如下C#后台代码希望通过选择下拉列表框的选项,在sqldatasource+Gridview中打开不同的表格(原表格的数据为空) 再使选择打开的表格进入编辑状态,手动添入数据后更新到数据库。但是,好像这段代码有问题,更新不了数据库。RowUpdating事件干脆不会写,@-@晕.......
数据库的表格打开还是空的,是不是绑定数据库的方法 void knbing()中的selectcommand命令有问题啊?可是我要打开选择的表格没有这句好像不行
前台的对应代码基本都有,OnRowEditing等等都写了。
主要代码
[code=C#][/code]
void knbind(string pmeter)
{
SqlDataSource1.ConnectionString = "Data Source=LBWin7\\SQLEXPRESS;Initial Catalog=iptt2;Integrated Security=True;Pooling=False;";
SqlDataSource1.SelectCommand = pmeter;
GridView1.DataSourceID = "SqlDataSource1";
GridView1.DataBind();
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
switch (DropDownList1.SelectedValue)
{
case "iptt423":
Label1.Text = "表iptt423";
Label2.Text = "SELECT * FROM iptt423";
break;
case "iptt827":
Label1.Text = "表iptt827";
Label2.Text = "SELECT * FROM iptt827";
break;
case "iptt934":
Label1.Text = "表iptt934";
Label2.Text = "SELECT * FROM iptt934";
break;
}
}
protected void Button1_Click(object sender, EventArgs e)
{
dynbind(Label2.Text.ToString());
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
knbind(Label2.Text.ToString());
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
knbind(Label2.Text.ToString());
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
}
我自己感觉好像select * 和添入的数据有冲突,因为的表原本是空白只有字段无数据的......
因为打开的表格是根据下拉列表框的选项来的,并不确定。这时,如何设定 打开的 那个表的第一列属性为只读?就是动态打开的表格如何获得或设定行列的属性?
打开唯一的表格,它的字段什么的都是确定的,网上例子也较多,比较好懂。这动态的我就有点晕了....还要获得EditIndex什么的吗?更新改动什么的要一个单元格一个单元格的来么?
本上网四处游荡,感觉****高手众多,特来求助!请尽量示以代码,谢谢啊!
------解决方案--------------------
本人菜鸟,写了如下C#后台代码希望通过选择下拉列表框的选项,在sqldatasource+Gridview中打开不同的表格(原表格的数据为空) 再使选择打开的表格进入编辑状态,手动添入数据后更新到数据库。但是,好像这段代码有问题,更新不了数据库。RowUpdating事件干脆不会写,@-@晕.......
数据库的表格打开还是空的,是不是绑定数据库的方法 void knbing()中的selectcommand命令有问题啊?可是我要打开选择的表格没有这句好像不行
前台的对应代码基本都有,OnRowEditing等等都写了。
主要代码
[code=C#][/code]
void knbind(string pmeter)
{
SqlDataSource1.ConnectionString = "Data Source=LBWin7\\SQLEXPRESS;Initial Catalog=iptt2;Integrated Security=True;Pooling=False;";
SqlDataSource1.SelectCommand = pmeter;
GridView1.DataSourceID = "SqlDataSource1";
GridView1.DataBind();
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
switch (DropDownList1.SelectedValue)
{
case "iptt423":
Label1.Text = "表iptt423";
Label2.Text = "SELECT * FROM iptt423";
break;
case "iptt827":
Label1.Text = "表iptt827";
Label2.Text = "SELECT * FROM iptt827";
break;
case "iptt934":
Label1.Text = "表iptt934";
Label2.Text = "SELECT * FROM iptt934";
break;
}
}
protected void Button1_Click(object sender, EventArgs e)
{
dynbind(Label2.Text.ToString());
}
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
{
GridView1.EditIndex = e.NewEditIndex;
knbind(Label2.Text.ToString());
}
protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
{
GridView1.EditIndex = -1;
knbind(Label2.Text.ToString());
}
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
}
我自己感觉好像select * 和添入的数据有冲突,因为的表原本是空白只有字段无数据的......
因为打开的表格是根据下拉列表框的选项来的,并不确定。这时,如何设定 打开的 那个表的第一列属性为只读?就是动态打开的表格如何获得或设定行列的属性?
打开唯一的表格,它的字段什么的都是确定的,网上例子也较多,比较好懂。这动态的我就有点晕了....还要获得EditIndex什么的吗?更新改动什么的要一个单元格一个单元格的来么?
本上网四处游荡,感觉****高手众多,特来求助!请尽量示以代码,谢谢啊!
------解决方案--------------------
- C# code
using System; using System.Data; using System.Configuration; 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.SqlClient; public partial class _Default : System.Web.UI.Page { SqlConnection sqlcon; SqlCommand sqlcom; string strCon = "Data Source=(local);Database=数据库名;Uid=帐号;Pwd=密码"; protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { bind(); } } protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { GridView1.EditIndex = e.NewEditIndex; bind(); } //删除 protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { string sqlstr = "delete from 表 where id='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'"; sqlcon = new SqlConnection(strCon); sqlcom = new SqlCommand(sqlstr,sqlcon); sqlcon.Open(); sqlcom.ExecuteNonQuery(); sqlcon.Close(); bind(); } //更新 protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { sqlcon = new SqlConnection(strCon); string sqlstr = "update 表 set 字段1='" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[1].Controls[0])).Text.ToString().Trim() + "',字段2='" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[2].Controls[0])).Text.ToString().Trim() + "',字段3='" + ((TextBox)(GridView1.Rows[e.RowIndex].Cells[3].Controls[0])).Text.ToString().Trim() + "' where id='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'"; sqlcom=new SqlCommand(sqlstr,sqlcon); sqlcon.Open(); sqlcom.ExecuteNonQuery(); sqlcon.Close(); GridView1.EditIndex = -1; bind(); } //取消 protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { GridView1.EditIndex = -1; bind(); } //绑定 public void bind() { string sqlstr = "select * from 表"; sqlcon = new SqlConnection(strCon); SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon); DataSet myds = new DataSet(); sqlcon.Open(); myda.Fill(myds, "表"); GridView1.DataSource = myds; GridView1.DataKeyNames = new string[] { "id" };//主键 GridView1.DataBind(); sqlcon.Close(); } }