急啊!!!!!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 = "添加成功";
}
}
...全文
143 11 打赏 收藏 转发到动态 举报
写回复
用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();
}

}
试试
学JAVA时间也不短了,可总没有一点自己原创的东西,今天就以写IDE开发工具的使用技巧作为我原创的开始吧,希望大家能喜欢这篇文章,也希望鄙文能对广大初学JAVA的朋友有一点帮助!在使用JCRETOR过程中,自己摸索出了一点点使用技巧,在这里供广大和我一样的初学者参考!

技巧1: 建立空项目进行JAVA编程;
在进行编程的时候最好首先建立一个空项目,然后在这个空项目里,编辑自己的JAVA程序;其实这是一个很好的习惯,你可以在这个项目里建立你自己的包,把你所编辑的源程序程序,按功能的不同分别放进不同的包里;这样在你学习JAVA一定长的时间后,你就拥有了一个属于你自己的包,这对你以后学习或查相关代码就很方便。
建立空项目的方法,或许大家都知道,不过在这里我还是罗嗦一下:):
按JCRETOR的菜单顺序,创建方法如下:
File??>New??>Project??>EmptyProject;
哈,其实很简单!祝你也早日拥有自己的类库!:)

技巧2: Jcretor对JDK的帮助文档提供了很好的支持;
通过Jcretor你可以很方便的即时查阅JDK帮助文档!且这个功能可以实现网页直接在Jcreator的编辑窗口里显示,而不用另外打开任何浏览器进行浏览。(Jcreator的这个特点我十分喜欢,据我所知Eclipse好象没有提供这个功能)哈,说了这么久相信大家一定会问,你这个功能到底怎么使用了! :)OK!别,马上你也会掌握这个技巧。
不知道大家是否记得在我们装完Jcreator后,第一次运行Jcreator时,系统会要求你指定JDK的安装路径;其实如果大家记得的话,在设置好了JDK的安装路径后,还会要求你提供一个DOCS的路径。哈,对头,要的就是这个拉!呵呵……下面让我来告诉你怎么设置这个路径:
首先,从SUN公司网站下载对应的JDK文档;
其次,在JDK安装目录(如,我的安装目录为D:\j2sdk1.4.2_06)中建立一个名为docs的文件夹,然后将所下载的JDK文档解压到刚才建立的文件夹里,解压完成后,然后在安装Jcretors时在相应地方选择刚才JDK文档所在的目录即可;(应注意的是:要保证docs文件夹下面不要再有docs文件夹)当你设置好后启动Jcreator,你是否会发现你的Jcreator有什么变化没有了?哈,其实有的,不信你看看Jcreator菜单栏中的Help下拉菜单,仔细看看是不是多了个什么东西?呵呵……是不是多了个“JDK Help Ctrl+F1”菜单项!如果有,那么恭喜你,配置成功拉!下面我将告诉你怎么使用这个功能;
再次,就是使用Jcretor发挥JDK帮助文档的作用拉!这正是我要说的重点,OK,让我来告诉你具体怎么使用这个功能吧:
当你在Jcreator中编写程序或看别人的原代码的时候,肯定会碰到不熟悉或不知道的类或方法,这个时候你用鼠标选中你要查询的类名或方法名,然后点击Jcretor菜单栏里的Help菜单下面的JDK Help,这时你会发现你所要查询的资料马上就在Jcreator中以网页的形式显示出来了! 呵呵……是不是发现很简单,是不是觉得可以跟CHM格式的JDK文档媲美!哈,就是这么简单!

技巧3: 这个技巧似乎和技巧2有点类似,归跟揭底就是为了实现网页文件直接在Jcreator编辑窗口中显示,而免去另外打开其他浏览器工具的麻烦。其实这个功能主要是为了方便编写JAVA APPLET小程序的程序员的。当编写好一个APPLET程序后,总要通过网页来观察程序的结果,这时用Jcretor编写一个HTML原文件并保存!这时会发现在Jcreator编辑窗口最左边的File View窗口中会出现相应的文件名,选中这个文件,单击右键再点击其中的View in Browser菜单项,不久你所选的HTML文件即在Jcretor中显示出来。OK,用这个方法比起你用浏览器来打开这个HTML文件,是不是方便多拉!呵呵,就是这么简单!
:)以上就是我在用Jcreator进行JAVA编程总结出来的一点点使用技巧,或许有些朋友已经知道了这里面的功能,班门弄斧,写得不好也请大家见凉!同时我还期望大家能把自己在使用Jcretor过程中总结出来的经验贴上来供大家一起参考!我也会在我的BLOG中及时更新我所学到的新技巧!

62,046

社区成员

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

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

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

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