在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

我如何在这里开发这样的结构。我是否需要使用网格或列表

建议不胜感激

在c# winform和sql server中使用按钮向gridview添加行

如果你正在寻找一些简单的东西,如通过按按钮和一些文本框或其他东西添加新行到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();
}

不知道如果这是什么你在寻找,但希望它在任何方式的帮助。祝你好运