关于删除或者更新后绑定的问题

coley 2004-06-17 05:46:47
说明‘是我暂时注销的,不过请注意下在SUB DATAGRDIUP方法中的不同
代码如下
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码
'提取初始设置CSS
css = db.getwebconfig.rows(0).item("cssset")
'判断用户合法性
' If Session("adminname") = "" Then
' addboard.Visible = False
' else
If Not Page.IsPostBack Then
DataGrid1.DataSource = db.filldatagrid()
DataGrid1.DataBind()
End If
' End If


End Sub
Public Sub addnewboard(ByVal obj As Object, ByVal e As EventArgs)

End Sub
Public Sub Datagridedit(ByVal obj As Object, ByVal e As DataGridCommandEventArgs)
DataGrid1.EditItemIndex = e.Item.ItemIndex
DataGrid1.DataSource = db.filldatagrid()
DataGrid1.DataBind()
End Sub
Public Sub datacancel(ByVal obj As Object, ByVal e As DataGridCommandEventArgs)
DataGrid1.EditItemIndex = -1
DataGrid1.DataSource = db.filldatagrid()
DataGrid1.DataBind()
End Sub
Public Sub Datagridup(ByVal obj As Object, ByVal e As DataGridCommandEventArgs)
If db.updatestore(e) Then
Response.Redirect("admin_addboard.aspx")
如果在更新后用上面的,数据还是要手动刷新下
'If Not Page.IsPostBack Then
'DataGrid1.DataSource = db.filldatagrid()
'DataGrid1.DataBind()
' End If
End If
End Sub
Public Sub datagriddel(ByVal obj As Object, ByVal e As DataGridCommandEventArgs)
在删除事件中我点了一下,数据删除了,但是页面不会刷新的,我手动刷新下就可以了,在点后我查看数据库还是有数据,但是在手动刷新后数据就没有了,奇怪
If db.deldategrid(e) Then
Response.Redirect("admin_addboard.aspx")
End If

End SUB
另外想问下,为什么我刷新快了,页面就显示
未指定的错误
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.OleDb.OleDbException: 未指定的错误

源错误:


行 39: Dim strconn As String = "provider=Microsoft.jet.OLEDB.4.0;data source=" & Server.MapPath("db/db.mdb")
行 40: dbconn = New OleDbConnection(strconn)
行 41: dbconn.Open()
行 42: End Function


OleDbException (0x80004005): 未指定的错误]
System.Data.OleDb.OleDbConnection.ProcessResults(Int32 hr) +20
System.Data.OleDb.OleDbConnection.InitializeProvider() +57
System.Data.OleDb.OleDbConnection.Open() +203
ybkxweb.myweb.config.dbopen() in F:\ybkxweb\dll.vb:41
ybkxweb.myweb.config.getwebconfig() in F:\ybkxweb\dll.vb:706
ybkxweb.addboard.Page_Load(Object sender, EventArgs e) in F:\ybkxweb\admin_addboard.aspx.vb:37
System.Web.UI.Control.OnLoad(EventArgs e) +67
System.Web.UI.Control.LoadRecursive() +35
System.Web.UI.Page.ProcessRequestMain() +731
分不多,只想能有人指点下,自学不容易啊
...全文
120 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
coley 2004-06-20
  • 打赏
  • 举报
回复
问题其实我找到了,说了你也不相信,必须在方法中要先打开数据库连接,再执行oledbcommand语句~呵呵我也想不到啊~
coley 2004-06-20
  • 打赏
  • 举报
回复
问题其实我找到了,说了你也不相信,必须在方法中要先打开数据库连接,再执行oledbcommand语句~呵呵我也想不到啊~
coley 2004-06-18
  • 打赏
  • 举报
回复
这个是我的删除方法
Public Function deldategrid(ByVal e As DataGridCommandEventArgs) As Boolean
dbcommand = New OleDbCommand("delete from wzfl where id=" & CType(e.Item.Cells(0).Controls(1), Label).Text, dbconn)
Try
dbopen()
dbcommand.ExecuteNonQuery()
dbconn.Close()
Return True
Catch ex As Exception
Return False
Exit Try
End Try
End Function
如果返回的是真的
Public Sub datagriddel(ByVal obj As Object, ByVal e As DataGridCommandEventArgs)
If db.deldategrid(e) Then
DataGrid1.DataSource = db.filldatagrid()
DataGrid1.DataBind()
End If
就从新绑定数据啊,这个没有错啊,
救命啊~~~~~~~~~~~~~~~~~~~~~~~~
救命啊~~~~~~~~~~~~~~~~~~~~~~~~
救命啊~~~~~~~~~~~~~~~~~~~~~~~~
救命啊~~~~~~~~~~~~~~~~~~~~~~~~
救命啊~~~~~~~~~~~~~~~~~~~~~~~~
real0411 2004-06-18
  • 打赏
  • 举报
回复
datagrid绑定列加一个客户删除按钮,写个javascript事件,把ID号再传本页面一次,同时还可以加个确认的对话框。

if(判断用户)
{
if(客户端删除按钮如果传回的ID号存在)
{
根据ID做删除纪录操作
//--
同时再次这个datagrid的内容重新读一遍
}
else
{
不做删除处理,直接读datagrid的内容
}
}

小弟我是这么做的,可行,不知还有其他好方法没?
real0411 2004-06-18
  • 打赏
  • 举报
回复
if((string)Session["UserName"]!=null)
{
if(Request.QueryString["user_id"]!="" && Request.QueryString["user_id"]!=null)
{
//如果删除按钮存在,根据id删除数据
string strConnection = "Provider=Microsoft.Jet.Oledb.4.0;";
strConnection += System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"].ToString();
string strSQL = "DELETE FROM user WHERE user_id = "+Request.QueryString["user_id"];
OleDbConnection objConnection = new OleDbConnection(strConnection);
OleDbCommand objCommand = new OleDbCommand(strSQL,objConnection);
objConnection.Open();
objCommand.ExecuteNonQuery();
//删除完了,再读一遍数据库
DataSet objDataSet = new DataSet();
strSQL = "Select * from user ORDER BY user_date DESC";
OleDbDataAdapter objAdapter = null;
objAdapter =new OleDbDataAdapter(strSQL,objConnection);
objAdapter.Fill(objDataSet,"user");
DataGrid1.DataSource = objDataSet.Tables["user"].DefaultView;
DataGrid1.DataBind();
objConnection.Close();
}
else//否则直接读数据库
{
DataSet objDataSet = new DataSet();
string strConnection = "Provider=Microsoft.Jet.Oledb.4.0;";
strConnection += System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"].ToString();
string strSQL = "Select * from _user ORDER BY user_date DESC";
OleDbConnection objConnection = new OleDbConnection(strConnection);
OleDbCommand objCommand = new OleDbCommand(strSQL,objConnection);
OleDbDataAdapter objAdapter = null;
objAdapter =new OleDbDataAdapter(strSQL,objConnection);
objAdapter.Fill(objDataSet,"user");
DataGrid1.DataSource = objDataSet.Tables["user"].DefaultView;
DataGrid1.DataBind();
objConnection.Close();
}

}
else
{
Response.Redirect("login.aspx");
}
feixiang1234 2004-06-18
  • 打赏
  • 举报
回复
删除后再重新绑定一次不就可以了。
coley 2004-06-17
  • 打赏
  • 举报
回复
高人啊~~在哪里啊~~~~~~
coley 2004-06-17
  • 打赏
  • 举报
回复
db.filldatagrid()
是我绑定的函数
具体如下
Public Function filldatagrid()
Try
dbadp = New OleDbDataAdapter("select * from wzfl", dbconn)
dbadp.Fill(ds, "datagrid")
Return ds.Tables("datagrid")
Catch ex As Exception
End Try
End Function
还是那样必须自己刷新才可以,我好郁闷啊
schema01 2004-06-17
  • 打赏
  • 举报
回复
你先用一个函数来做数据绑定
每次删除或更新后,就调用函数嘛
tongtianming 2004-06-17
  • 打赏
  • 举报
回复
你从数据库中删除行的代码呢?
SkyGG 2004-06-17
  • 打赏
  • 举报
回复
DataGrid1.DataSource直接使用DataSet或DataTable就不会有问题的。
coley 2004-06-17
  • 打赏
  • 举报
回复
真的没有人愿意帮忙吗?》

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧