急啊!!!!!HELP

圣诞老人123 2008-03-05 07:48:41
我做了个投票模块可是输入主题时第一次点添加主题时成功了第二次哪怕里面是空的再点都会加入前一个添加的主题,反正都会出现两次

哪位高手帮帮我啊

我写的类:
public class TitleControl
{
public TitleControl()
{
//
// TODO: 在此处添加构造函数逻辑
//

}
public int AddTitle(string TitleName)
{
string set;
string mysql;
int row1;
SqlConnection mycon;
SqlCommand mycmd;

set = Convert.ToString(ConfigurationManager.ConnectionStrings["con"].ToString());
mysql = "insert into VoteTitle(TitleName)";
mysql = mysql + "values('" + TitleName + "')";
mycon = new SqlConnection(set);
mycon.Open();
mycmd = new SqlCommand(mysql,mycon);

row1=mycmd.ExecuteNonQuery();
return row1;

}
public SqlDataReader bind()
{
string set;
string mysql;
SqlConnection mycon;
SqlCommand mycmd;
SqlDataReader mydr;

set = Convert.ToString(ConfigurationManager.ConnectionStrings["con"].ToString());
mysql = "select * from VoteTitle";
mycon = new SqlConnection(set);
mycon.Open();
mycmd = new SqlCommand(mysql, mycon);
mydr = mycmd.ExecuteReader();
return mydr;
}
}

页面:

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
/* TitleControl Title = new TitleControl();
SqlDataReader mydr1;
mydr1 = Title.bind();

GridView1.DataSource = "mydr1";
GridView1.DataBind();*/
TitleControl mytc = new TitleControl();
SqlDataReader mydr;
mydr = mytc.bind();
GridView1.DataSource = mydr;
GridView1.DataBind();

}
protected void Button1_Click(object sender, EventArgs e)
{
int row;
TitleControl Title = new TitleControl();
row=Title.AddTitle(TextBox1.Text);
if(row!=0)
Label1.Text = "添加成功";
}
}
...全文
156 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
insus 2008-03-07
  • 打赏
  • 举报
回复
请参考Insus.NET修改过程的影片与修改后的代码:
http://download.csdn.net/source/371425
如果,还有什么问题,请继续讨论,谢谢
jcc3120 2008-03-06
  • 打赏
  • 举报
回复
提交了之后,重新从数据库里把数据提出来,作为gridview的datasource阿
likevs 2008-03-06
  • 打赏
  • 举报
回复
呵呵,看来你已经知道 if(!IsPostBack)
在什么时候用了,

对了,你上面的写法最好是:

在页面加载时,用if(!IsPostBack) ,有前辈说过,这样可以省去很多其它不必要的操作,比如你除了数据库读数,外,还有其它的很多操作时,那就让程序多做了好多重复工作了哦


现在你已在protected void Button1_Click(object sender, EventArgs e)
重新绑定了,如果在页面加载时不使if(!IsPostBack) ,你自己想想,程序是不是又再次去读取数据啊???

多了一次无聊的操作哦.



当然,如果你觉得代码过多,那就把到数据库读数的操作封装成独立的函数吧,,,在:

public partial class _Default : System.Web.UI.Page
{

定义数据库读数的操作的函数,然后, 呵呵,什么时候想读数,就只写函数名调用就得了.

更多的,你可以自己在App_Code文件夹里定义自己的数据库操作类,然后在所有的页面就可以引用了.
圣诞老人123 2008-03-06
  • 打赏
  • 举报
回复
恩,我刚也试了对了我是个初学者我想说说我的想法看啊对大家帮我看看

每次页面加载都只是加载一次后面都是因为响应请求的页面回送,回送的是原页面,所以得再次绑定,


我写的代码是这样的:


public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
/*
TitleControl Title = new TitleControl();
SqlDataReader mydr1;
mydr1 = Title.bind();

GridView1.DataSource = "mydr1";
GridView1.DataBind();*/
TitleControl mytc = new TitleControl();
SqlDataReader mydr;
mydr = mytc.bind();
GridView1.DataSource = mydr;
GridView1.DataBind();


}
protected void Button1_Click(object sender, EventArgs e)
{
int row;
TitleControl Title = new TitleControl();
row=Title.AddTitle(TextBox1.Text);
if(row!=0)
Label1.Text = "添加成功";
TitleControl mytc = new TitleControl();
SqlDataReader mydr;
mydr = mytc.bind();
GridView1.DataSource = mydr;
GridView1.DataBind();
//GridView1.DataBind();
}
}



啊可以写出些简单的这样好像太复杂了;
给些简单的写法啊可以~~~~~···
jypcxgzl 2008-03-06
  • 打赏
  • 举报
回复
在提交的按钮事件里重新绑定一下呢
圣诞老人123 2008-03-06
  • 打赏
  • 举报
回复
可是我是想在提交后页面就刷新出提交的结果。我的Gridvie与textbox(输入提交的主题)在一个页面。
lishijie910123 2008-03-06
  • 打赏
  • 举报
回复
对啊,应该是这个问题吧
pl731 2008-03-05
  • 打赏
  • 举报
回复
IsPostBack里面的东西只有第一次页面打开才会执行的~
周公 2008-03-05
  • 打赏
  • 举报
回复
1楼的做法就是刷新页面,if(!IsPostBack)这个判断保证GridView不会刷新,这样在大部分情况是这么处理的。
圣诞老人123 2008-03-05
  • 打赏
  • 举报
回复
这样写了但是我的gridview不自动更新了~~~~~~~~~~只有再打开时才跟新
怎么办啊
可以告诉我我这么做为什么每次提交出现2次一样的就是说提交以次后再提交都是前一次的结果。我是初学者我十分想弄明白啊可以告诉我十分感谢~~~~~~~~~~拜托了。。。。。。。。。。。
沅江汐水 2008-03-05
  • 打赏
  • 举报
回复
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
/* TitleControl Title = new TitleControl();
SqlDataReader mydr1;
mydr1 = Title.bind();

GridView1.DataSource = "mydr1";
GridView1.DataBind();*/
TitleControl mytc = new TitleControl();
SqlDataReader mydr;
mydr = mytc.bind();
GridView1.DataSource = mydr;
GridView1.DataBind();
}

}
试试

62,242

社区成员

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

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

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

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