如何从数据库中填入数字框?

时间:2017-09-19 17:00:43

标签: c# html css sql asp.net

我有一张桌子,我想用这样的OrderedID填充方框;

        PlayerId   Name         OrderedID 
        4          Alex Nice        1
        6          David Cup        3
        7          John Fun         2
        10         Mary Hill        6
        11         Michal Ola       5
        12         Henry Ford       4

enter image description here

我怎么能用asp.net做到这一点?我的代码和结果。

SqlConnection yol = new SqlConnection(@"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True");
        yol.Open();
        SqlDataAdapter da = new SqlDataAdapter("Select * from players order by OrderedID", yol);
        DataTable dt = new DataTable();
        da.Fill(dt);
 int k = 1;
        for (int i = 0; i <= dt.Rows.Count; i++)
        {
            StringBuilder sb = new StringBuilder();
            for (int j = 0; j < i; j++)
            {
                sb.Append(dt.Rows[j][2].ToString());
                sb.Append(".   "+dt.Rows[j][1].ToString() + "   ");
                k++;
            }


            treeview.Nodes.Add(new TreeNode(sb.ToString()));
        }

这是我的结果。请帮帮我。

enter image description here

1 个答案:

答案 0 :(得分:2)

与您的代码不完全是1对1,但我认为它适合您的情况。

我在小提琴中制作了一个类似的片段here

我想出的“特殊酱”是这个算法:

int skip = 0;
int take = 1;
int addedCount = 0;

do{
    sb.AppendLine(string.Join(" ", players.Skip(skip).Take(take).Select(x => $"{x.Order}) {x.Name}")));
    addedCount += take;
    skip += take;
    take += take + 1;           
}
while(addedCount < players.Count);

我无法完全在.NET Fiddle中重现数据库,因此我的代码片段使用“播放器”对象,但如果您替换数据库行/列,则应该是好的。可能有更好的循环方式(这只是我快速的2分钟尝试),但这个应该帮助你指明方向。