关于数据库添加完之后 控件数据读取问题

MOTA 2009-02-21 09:56:50
兄弟们 我有个问题
WEB页面中 我用控件 添加完数据
但是 控件中的数据并没有更新
但实际上 数据已经写入了数据库
请问有什么办法?
需要我再次刷新页面才能成功读取数据!!!
PS 似乎 ASP.NET的生命周期 事件动作排在 控件初始化后面...
...全文
49 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
缪军 2009-02-21
  • 打赏
  • 举报
回复
有没有设置
AppendDataBoundItems = true;
zhaoqiliang527 2009-02-21
  • 打赏
  • 举报
回复
学习!
koukoujiayi 2009-02-21
  • 打赏
  • 举报
回复
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
Start();
}
......
if (cmd.ExecuteNonQuery() == 1)
{
Response.Write("成功添加1条记录!");
//Start();
DropDownList1.DataBind();
DropDownList2.DataBind();
}

试试
缪军 2009-02-21
  • 打赏
  • 举报
回复
当然要重新查询,
利用无刷新技术
MOTA 2009-02-21
  • 打赏
  • 举报
回复
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Data.OleDb;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

public partial class WebAdmin_Class : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Start();
}
/// <summary>
/// 页数据初始化
/// </summary>
private void Start()
{
String Sql = "select id,classname from class";
DataTable DT = new DataTable();
OleDbConnection Conn=new OleDbConnection();
Conn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
using (OleDbDataAdapter Ap = new OleDbDataAdapter(Sql,Conn))
{
Ap.Fill(DT);
DropDownList1.DataSource = DT;
DropDownList1.DataTextField = "ClassName";
DropDownList1.DataValueField = "ID";
DropDownList1.DataBind();
DropDownList1.Items.Add(new ListItem(" - 无 - ", "0"));
DropDownList1.SelectedValue = "0";
}
Sql = "select id,classname from class where strid=0";
using (OleDbDataAdapter Ap = new OleDbDataAdapter(Sql, Conn))
{
DT.Clear();
Ap.Fill(DT);
DropDownList2.DataSource = DT;
DropDownList2.DataTextField = "ClassName";
DropDownList2.DataValueField = "ID";
DropDownList2.DataBind();
DropDownList2.Items.Add(new ListItem(" - 全部 - ","0"));
DropDownList2.SelectedValue = "0";
}

Conn.Close();
}
protected void Button3_Click(object sender, EventArgs e)
{
String Sql = "insert into class (classname,strid) values('" + AddText.Text + "','" + DropDownList2.SelectedValue + "')";
OleDbConnection Conn = new OleDbConnection();
Conn.ConnectionString = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
Conn.Open();
OleDbCommand cmd = new OleDbCommand(Sql, Conn);
if (cmd.ExecuteNonQuery() == 1)
{
Response.Write("成功添加1条记录!");
Start();
}
else
{
Response.Write("添加失败!");
}
cmd.Dispose();
Conn.Close();
}
}


我这样写 但是 告诉我

------------------------------
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

“DropDownList1”有一个无效 SelectedValue,因为它不在项目列表中。
参数名: value
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ArgumentOutOfRangeException: “DropDownList1”有一个无效 SelectedValue,因为它不在项目列表中。
参数名: value

源错误:


行 72: DropDownList1.DataTextField = "ClassName";
行 73: DropDownList1.DataValueField = "ID";
行 74: DropDownList1.DataBind();
行 75: DropDownList1.Items.Add(new ListItem(" - 无 - ", "0"));
行 76: DropDownList1.SelectedValue = "0";


------------------------------------------------------------------------------
求解
hdzdw 2009-02-21
  • 打赏
  • 举报
回复
PS里我没试过。不过在winform里的做法。我经常是更新完数据后,重新绑定一下。
在网页添加数据成功也应该给个提示吧。或者,用ajax

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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