在c# winform和sql server中使用按钮向gridview添加行
本文关键字:按钮 gridview 添加行 winform sql server | 更新日期: 2023-09-27 17:49:31
我正在做一个关于学生评分系统的项目。我被卡住了,它将在下面显示:
STUDENT ID : 12345
STUDENT NAME : ALEXIA
LESSONS : GRADE 1 GRADE 2 AVERAGE LIMIT RESULT
PHYSICS 40 80 60 50 PASS
CALCULUS 20 10 15 50 FAIL
Add new lesson
New list should be ; (assume we add Sport as new lesson on the list)
LESSONS : GRADE 1 GRADE 2 AVERAGE LIMIT RESULT
PHYSICS 40 80 60 50 PASS
CALCULUS 20 10 15 50 FAIL
SPORT 100 100 100 50 PASS
add new lesson (line)
我会将这些数据保存到数据库中,然后将新表单上的所有数据列为;
STUDENT NAME : ALEXIA
LESSONS GRADE RESULT
PHYSICS 60 PASS
CALCULUS 15 FAIL
SPORT 100 PASS
我如何在这里开发这样的结构。我是否需要使用网格或列表
建议不胜感激
如果你正在寻找一些简单的东西,如通过按按钮和一些文本框或其他东西添加新行到gridview,试试这个
DataGridViewRow row = (DataGridViewRow)yourDataGridView.Rows[0].Clone();
row.Cells["LESSONS"].Value = yourtextbox.text;
row.Cells["Grade"].Value = yourtextbox1.text;
row.Cells["Result"].Value = yourtextbox1.text;
yourDataGridView.Rows.Add(row);
我想为错过阅读道歉,现在我看到它是在winforms中,只需在解决方案资源管理器中右键单击您的项目,然后选择"添加新的用户控件"。这实际上会让你从许多不同类型的对象中选择要添加的,但用户控件是你想要的。当您添加用户控件时,它应该为您提供一个新的设计器窗口,该窗口带有一个单独的面板,您可以将常规控件放到该面板上。然后返回到窗体,您将看到工具箱中的一个新部分,其中包含您的新控件。您可以像使用任何其他控件一样使用它,包括动态创建它并将其添加到窗体上的flowlayoutpanel。
然后在datagrid上添加一行,例如如下所示
public DataTable GetResultsTable()
{
DataTable table = new DataTable();
table.Columns.Add("Name".ToString());
table.Columns.Add("Color".ToString());
DataRow dr = table.NewRow();
dr["Lesson"] = "Programing";
dr["Calculus"] = "99";
dr["result"] = "pass";
table.Rows.Add(dr);
return table;
}
public void gridview()
{
datagridview1.DataSource = GetResultsTable();
}
希望这次我帮你走对了路,祝你好运
我不知道这是不是你假装的,但是,让我们看看…
我能理解你想要这样的东西
STUDENT NAME : ALEXIA
LESSONS GRADE RESULT
PHYSICS 60 PASS
CALCULUS 15 FAIL
SPORT 100 PASS
你可以创建一个html表格结构并使用
& lt ;%# ( DataBinder。Eval(Container, "DataItem.username")) %>从DB
绑定项
现在回答你可能的问题:
但是我想要3,4或100个这样的结构,这取决于我从db得到的stundes的数量。
很简单,把你的结构放在一个中继器中,只要把数据源传递给中继器,你就会根据数据得到结构。
但我不只有物理,微积分和体育,我可以添加更多。
在重复器中使用另一个重复器,像这样
<td> <%#(DataBinder.Eval(Container, "DataItem.Title")) %></td><td> <%#(DataBinder.Eval(Container, "DataItem.Grade")) %></td><td> <%#(DataBinder.Eval(Container, "DataItem.Result")) %></td>
* PS:请记住我使用的数据项只是示例…
访问中继器内部中继器有问题?使用像这样的
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
var data = ((MyClass)e.Item.DataItem).Subcategories;
var repeater2 = (Repeater)e.Item.FindControl("Repeater2");
repeater2.DataSource = data;
repeater2.DataBind();
}
不知道如果这是什么你在寻找,但希望它在任何方式的帮助。祝你好运