本文主要是介绍Gridview查询后,对查询结果进行编辑,可无法定位我要的记录行,解决方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
终于解决了!
这是由于SQLDataSource中的SelectCommand是不被保留的。
所以当您修改了SelectCommand后,点击了编辑后,ASP.net会自动再重新生成一次SqlDataSource,而他的SelectCommand依旧使用的还是原先默认设置中的select * from Table。所以他会从去数据库中,将所有的数据都都回来。
解决的方法就是将SelectCommand加入到Session或是ViewState或是Cookie中,然后再每次页面Load的时候,将内容付给SqlDataSource
如下:
1、将页面中自动生成的数据源查询命令语句设置为空。然后在 pageload中 检查session如果不为空则说明有查询语句,赋给即可。如果初次打开页面,可以else 给默认语句,即可。
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) ‘控件查询事件
{
SqlDataSource1.SelectCommand = "select * from table4 where id = '6'";
Session["SqlDataSouce1Command"] = SqlDataSource1.SelectCommand;
}
protected void Page_Load(object sender, EventArgs e)
{
if (!(Session["SqlDataSouce1Command"] == null))
SqlDataSource1.SelectCommand = Session["SqlDataSouce1Command"].ToString();
}
End Sub
这是由于SQLDataSource中的SelectCommand是不被保留的。
所以当您修改了SelectCommand后,点击了编辑后,ASP.net会自动再重新生成一次SqlDataSource,而他的SelectCommand依旧使用的还是原先默认设置中的select * from Table。所以他会从去数据库中,将所有的数据都都回来。
解决的方法就是将SelectCommand加入到Session或是ViewState或是Cookie中,然后再每次页面Load的时候,将内容付给SqlDataSource
如下:
1、将页面中自动生成的数据源查询命令语句设置为空。然后在 pageload中 检查session如果不为空则说明有查询语句,赋给即可。如果初次打开页面,可以else 给默认语句,即可。
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) ‘控件查询事件
{
SqlDataSource1.SelectCommand = "select * from table4 where id = '6'";
Session["SqlDataSouce1Command"] = SqlDataSource1.SelectCommand;
}
protected void Page_Load(object sender, EventArgs e)
{
if (!(Session["SqlDataSouce1Command"] == null))
SqlDataSource1.SelectCommand = Session["SqlDataSouce1Command"].ToString();
}
vb.net 的
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'将数据源 语句存到sesson中,而不是写在页面中 为了解查询结果不编辑时,行错。
If Session("sqlcmd") <> "" Then '如果session中有语句则就设置上
AccessDataSource1.SelectCommand = Session("sqlcmd").ToString()
End If
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim can1, can2 As String
can1 = DropDownList1.SelectedValue
can2 = TextBox1.Text
If can2.Trim() <> "" Then
AccessDataSource1.SelectCommand = "SELECT * FROM [gslist] where " & can1 + " like'" & can2 + "%'"
GridView1.DataBind()
If GridView1.Rows.Count() = 0 Then Button2.Enabled = False Else Button2.Enabled = True
End If
'将语句存放到session中
AccessDataSource1.SelectCommand = "SELECT * FROM [gslist] where " & can1 + " like'" & can2 + "%'"
Session("sqlcmd") = AccessDataSource1.SelectCommand
这篇关于Gridview查询后,对查询结果进行编辑,可无法定位我要的记录行,解决方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!