日期:2014-05-19  浏览次数:20416 次

写一个成绩输入成绩时遇到的问题(一按钮添加多行)
写一个成绩输入成绩时遇到的问题:
        输入班号后查询出该班的所有同学名单列表,每个名字后跟一个textbox,
        然后在textbox中输入成绩,当全部输好后,按一个button提交所有的成绩(注意是只按一个button)。
        假设数据库成绩表grade中只有三个字段:sno(学号),cna(课程名),gra(成绩)。
        谢谢!
        提供思路也好,具体一点更好。能有实例当然最好。


------解决方案--------------------
写一个添加的方法。然后按钮提交的时候,分别执行三次就可以了,只是每次给参数赋值不一样而已。
------解决方案--------------------
是批量保存的问题,只有自己去拼update语句更新数据库表了
------解决方案--------------------
LZ,告诉你我的经验,别让教师去添加,应该是教务部门按照教学大纲一次把每个班要考的每一门课一起生成出来,然后让教师来修改.

------解决方案--------------------
sno(学号),cna(课程名),gra(成绩)。
每次添应该是只填一个课程一个班的成绩,建议用数据集,把学号、姓名、课程号、成绩检索出来放到数据集中,当然开始成绩可能是空的,也可能不空(已经填了,要修改)。
然后把数据集绑定到GridView,显示学号、姓名、成绩三列(课程都相同,就不用显示了),成绩列采用模板列,里面放TextBox,这样就能都修改,而不是一行一行去点那个编辑按钮。
提交时用循环去读TextBox内容,更新数据集,然后用SqlDataAdapter的Update方法更新到数据库。
------解决方案--------------------
你这样设计很不好..
第一:主码应该用唯一的 最差也用: 学号;
第二:最好只让老师 输入成绩.
如果你感觉 一,二不重要的话 .
你就用update更新吧...........给分哦
------解决方案--------------------
up
------解决方案--------------------
<asp:datagrid id= "grid " runat= "server " Width= "100% " AutoGenerateColumns= "False " DataKeyField= "ID " PageSize= "15 ">
<Columns>
<asp:TemplateColumn HeaderText= "编号 ">
<HeaderStyle HorizontalAlign= "Center " Width= "50px "> </HeaderStyle>
<ItemStyle HorizontalAlign= "Center "> </ItemStyle>
<ItemTemplate>
<%# grid.Items.Count+1 %>
<asp:label id= "lblID " runat= "server " Visible= "False " Text= ' <%# DataBinder.Eval(Container.DataItem, "ID ")%> '> </asp:label>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText= "学生 ">
<HeaderStyle Width= "300px "> </HeaderStyle>
<ItemTemplate>
<%# DataBinder.Eval(Container, "DataItem.Name ") %>
</ItemTemplate>
</asp:TemplateColumn>
<asp:TemplateColumn HeaderText= "成绩 ">
<HeaderStyle Width= "50px "> </HeaderStyle>
<ItemTemplate>
<asp:textbox id= "txtGrade " runat= "server " Width= "50px " Text= ' <%# DataBinder.Eval(Container.DataItem, "Grade ")%> '> </asp:textbox>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
<PagerStyle Visible= "False "> </PagerStyle>
</asp:datagrid>

<asp:button id= "btnYes " runat= "server " CssClass= "bottom " Text= "确定 "> </asp:button>


private void btnYes_Click(object sender, EventArgs e)
{
Label label;
StringBuilder strSql=new StringBuilder();
foreach(DataGridItem oDataGridItem in grid.Items)
{
TextBox txt1 = (TextBox)oDataGridItem.FindControl( "txtGrade ");

label = (Label)oDataGridItem.FindControl( "lblID ");
strSql.Append( " update Stu_Grade set ");