你的代码太乱,你的程序流程我也没看懂提示:
每一次对datagrid操作完毕(包括,翻页,修改,删除)都要重新连数据库,重新邦定.其次你好像没有取到treeview的值吧,如果不是postback的话我估计你取不到
而如果把treeview的autopostback属性设为true,又是很烦.你先说你程序的功能,执行流程,需要取得那些数据等
这样别人才能给你看看
每一次对datagrid操作完毕(包括,翻页,修改,删除)都要重新连数据库,重新邦定.其次你好像没有取到treeview的值吧,如果不是postback的话我估计你取不到
而如果把treeview的autopostback属性设为true,又是很烦.你先说你程序的功能,执行流程,需要取得那些数据等
这样别人才能给你看看
解决方案 »
- |zyciis| 网站在本地正常在服务器提示:The server request timed out 急,谢谢
- 我该怎么做?这句话什么意思?
- table控件的使用!急救!
- 提问:类似这下BLOG右下方弹出的小网页效果如何实现??
- csdn用户提的问题是怎样存储的
- 问一个分页的算法
- 问个VB语法问题
- 如何使用javascript判断DataGrid中的Checkbox是否选中?
- 又是该死的DataGrid!!!老大们,这是怎么回事,进来看看!!!
- 希望与大家探讨一个问题:开发整个系统,只用到一个DataSet。那么这个DataSet用什么方式保存呢?(随时可以调用、添加、修改其中的任一表
- 网站发布到服务器后,IE WebControls 无法正常使用!!! !!! 急!!!
- asp.net可移植性问题
整个页面的结构是这样的:
在其左侧为一个treeview控件,页面的主体为以datagrid控件,页面的下面是一个button。treeview1节点的text对应数据库的"工程编号"这个字段。按纽 delbtn 的
事件负责删除所选择的一条或多条记录,他是datagrid1之外的一个控件。
datagrid1里绑定了一个CheckBox的模板列,通过他选择一条或多条记录。程序运行并进入页面后,则程序就会首选调用函数BindGrid(),执行数据库连接,并读取
treeview的默认的已选的节点的text,并把他传递给参数@gcbh,如果有满足“工程编号“
=@gcbh的记录,则会执行数据绑定,在datagrid里显示出来。点击treeview的一个节点后,则激发 TreeView1_SelectedIndexChange()函数,读取节点的text,并把他传递给参数@gcbh,如果有满足“工程编号“
=@gcbh的记录,则会执行数据绑定,在datagrid里显示出来。通过checkbox选择一条或多条datagrid里的记录,然后点击删除按钮delbtn,则激发函数
delbtn_Click(),执行删除操作。
具体思路就是这样的,麻烦你了!!
如果取道了,那么对datagird重新进行数据bind,调用BindGrid
2.delbtn是否工作正常,你可以先测试一下,如果他不能按你的要求工作,
那调试就没什么意义了,先不要关treeview,你就先测试一下这个按钮大体上也就这两个问题,我觉得第二个要出问题,
其次每次对datagrid操作完毕都要调用bindgrid()
但还有一点东西需要你帮忙:
为什么不能删除多条记录,而只能删除一条,不论你选的是一条还是多条?
这是负责删除的函数:
private void delbtn_Click(object sender, System.EventArgs e)
{
CheckBox SelectItem;
nextda = new System.Data.SqlClient.SqlDataAdapter();
nextda.DeleteCommand = new System.Data.SqlClient.SqlCommand("DELETE FROM dengji WHERE 工程编号 = @gcbh1",sqlconn);
nextda.DeleteCommand.Parameters.Add("@gcbh1",SqlDbType.VarChar,80,"工程编号");
DataGrid1.DataKeyField="工程编号";
for(int i=0;i<DataGrid1.Items.Count;i++)
{
SelectItem = (CheckBox)DataGrid1.Items[i].FindControl("SelectBox");
if(SelectItem.Checked)
{
nextda.DeleteCommand.Parameters["@gcbh1"].Value = DataGrid1.DataKeys[(int)DataGrid1.Items[i].ItemIndex];
sqlconn.Open();
nextda.DeleteCommand.ExecuteNonQuery();
sqlconn.Close();
BindGrid();
}
}
}对不起,我还有一个问题,我可真是个问题少年,不好意思:
这是我的一个查询语句
sqlda.SelectCommand = new System.Data.SqlClient.SqlCommand("SELECT 工程编号,登记日期,工程级别,建设单位,工程地点,联系人,工程负责人,任务去向 FROM dengji WHERE _____ = @gcbh ",sqlconn);
其中的"_____"是我从一个dropdownlist里读出的字段名称,请问这该怎样实现???
如果我想在加个条件,用于连接的and 或 or需要从 dropdownlist里读出,又该怎样实现?
sqlconn.Open();
nextda.DeleteCommand.ExecuteNonQuery();
sqlconn.Close();
BindGrid();
你删除后马上BindGrid(),你选择的记录已经消失了吧所以把BindGrid()移到for外面
这是我的一个查询语句
sqlda.SelectCommand = new System.Data.SqlClient.SqlCommand("SELECT 工程编号,登记日期,工程级别,建设单位,工程地点,联系人,工程负责人,任务去向 FROM dengji WHERE _____ = @gcbh ",sqlconn);
其中的"_____"是我从一个dropdownlist里读出的字段名称,请问这该怎样实现???
如果我想在加个条件,用于连接的and 或 or需要从 dropdownlist里读出,又该怎样实现?
我已经说过了的,我知道这样有点得寸近尺,可我还是要拜托你,拜托了
DropDownList1当前值为“工程编号”,DropDownList2当前值为“and”,语句可以这样写:string selectsql="SELECT 工程编号,登记日期,工程级别,建设单位,工程地点,联系人,工程负责人,任务去向 FROM dengji ";
selectsql +=" where " +DropDownList1.SelectedItem.Text +"='001' " +DropDownList2.SelectedItem.Text +" 工程负责人='aa'";sqlda.SelectCommand = new System.Data.SqlClient.SqlCommand(selectsql,sqlconn);在测试的时候可以将selectsql语句输出来看看是否正确,只要注意一下字符串的操作就可以了。