请问:在用户控件中更新数据库的问题?

goodsun1 2005-03-29 01:20:05
请问:我在单击了提交按钮后为什么不能更新数据库,在执行Page_Load事件时也不能读取数据库中的内容,是哪的错?
make_notice.ascx文件如下:
<%@ Import NameSpace="System.Data"%>
<%@ Import NameSpace="System.Data.OLeDb"%>
<script language="vb" runat="server">
Sub Page_Load(Sender As Object,E As EventArgs)
If Not Page.IsPostBack Then
Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & Server.MapPath("data.mdb"))
Dim cmd As New OleDbCommand("Select * from 辅助设置 Where 用户名='goodsun'",conn)
conn.Open()
Dim dr As OleDbDataReader=cmd.ExecuteReader()
If dr.Read() Then
Text1.Text=dr.Item("公告栏")
End If
conn.Close()
End If
End Sub
Sub update_Click(Sender As Object,E As EventArgs)
Dim conn As New OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0;Data Source=" & Server.MapPath("data.mdb"))
Dim cmd As New OleDbCommand("update 辅助设置 set 公告栏='" & Text1.Text & "' Where 用户名='goodsun'",conn)
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
End Sub
</script>

<table>
<tr>
<td>

公告栏信息:
<asp:TextBox ID="text1" runat="server"/><br>
<asp:Button ID="update" Text="提交" runat="server" OnClick="update_Click"/>
</td>
</tr>
</table>


makeWeb文件:

<%@ Register TagPrefix="myControl" TagName="notice" Src="make_notice.ascx"%>
<%@ Import NameSpace="System.Data" %>
<%@ Import NameSpace="System.Data.OleDb" %>
<script language="vb" runat="server">
Private Sub button1_Click(Sender As Object,E As EventArgs)

Panel1.Controls.Add(Page.LoadControl("make_notice.ascx"))

End Sub
</script>
<body>
<form runat="server">
<asp:button id="button1" runat="server" onClick="button1_Click"/>
<table width="100%"border="1">
<tr>

<td align="center">

<asp:Panel id="Panel1" runat="server"
BackColor="gainsboro" Width="100%" Height="400" Visible="true">

</asp:Panel>

</td>
</tr>
</table>
</form>
</body>
</html>
...全文
94 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
goodsun1 2005-03-30
  • 打赏
  • 举报
回复
以前的代码并没有什么错误提示,只是无法实现预期的功能,麻烦大家再看看
goodsun1 2005-03-30
  • 打赏
  • 举报
回复
不好意思,小弟初学者,请问这样改对吗?
Dim myControl1 As notice=New notice(Page.LoadControl("make_notice.ascx"))
Panel1.Controls.Add(myControl)
但这样提示“notice未定义”,麻烦您再看一下。

xzq686 2005-03-29
  • 打赏
  • 举报
回复
不好意思,上面的是C#的实例化代码。你改成VB的试试
xzq686 2005-03-29
  • 打赏
  • 举报
回复
<script language="vb" runat="server">
Private Sub button1_Click(Sender As Object,E As EventArgs)

//Panel1.Controls.Add(Page.LoadControl("make_notice.ascx"))
//改成:

notice myControl = (notice)LoadControl("make_notice.ascx");
Panel1.Controls.Add(myControl);//试着先实例化一个,再加载

End Sub
</script>


littlechang 2005-03-29
  • 打赏
  • 举报
回复
代码没有什么啊,把错误拿出来看看。
  • 打赏
  • 举报
回复
最起码也要把错误信息说一下呀,代码不错呀!

62,242

社区成员

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

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

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

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