如何比较 TextBox 中的值

匿名
2024-04-22T07:47:51.56+00:00

我的项目中有一个数据网格和一个文本框,Datagrid 从 SQL 数据库加载所有数据,当我选择每一行时,它都显示在 texbox1 中,我的问题是。我是否可以在文本框中比较这些值,并按最高值对每个值进行评分,并将分级值保存到 DataGrid 和数据库中?请有人给我一个清晰而全面的答案,或者至少尝试为我的问题提供解决方案。

Note:此问题总结整理于: How To Compare values in a TextBox

开发人员技术 | C#
开发人员技术 | C#

一种面向对象的类型安全的编程语言,它起源于 C 语言系列,包括对面向组件的编程的支持。

0 个注释 无注释

问题作者接受的答案

Hui Liu-MSFT 48,711 信誉分 Microsoft 外部员工
2024-04-22T08:52:05.0966667+00:00

数据库中的示例数据: 示例代码:

58887-capture.png

        private void button_Click(object sender, RoutedEventArgs e)  
        {  
            DataTable dataTable = GetData();  
            dataGrid.ItemsSource = dataTable.DefaultView;  
            mathListView.ItemsSource = GetRowCollection(dataTable, "Math");  
            scienceListView.ItemsSource = GetRowCollection(dataTable, "Science");  
            englishListView.ItemsSource = GetRowCollection(dataTable, "English");  
        }  
        private EnumerableRowCollection<Tuple<object, object>> GetRowCollection(DataTable dataTable, string subjectName)  
        {  
            var scoreList = from row in dataTable.AsEnumerable()  
                            where row["SubjectName"].ToString() == subjectName  
                            orderby row["Score"] descending  
                            select new Tuple<object, object>(  
                                row["Name"],  
                                row["Score"]  
                            );  
            return scoreList;  
        }  
        public DataTable GetData()  
        {  
            string connString = @"connString";  
            using (SqlConnection connection = new SqlConnection(connString))  
            {  
                connection.Open();  
                string sql = @"select stu.Name , sub.SubjectName, ss.Score" +  
                                " from Student stu" +  
                                " join Student_Subject ss" +  
                                " on stu.ID = ss.StudentID" +  
                                " join Subject sub " +  
                                " on sub.SubjectID = ss.SubjectID";  
                using (SqlCommand command = new SqlCommand(sql, connection))  
                {  
                    DataTable dataTable = new DataTable();  
                    dataTable.Load(command.ExecuteReader());  
  
                    return dataTable;  
                }  
            }  
        }  

我使用 ListView 而不是 Textbox,因为我认为它会更漂亮。

    <ListView x:Name="mathListView" HorizontalAlignment="Left" Height="196" Margin="334,170,0,0" VerticalAlignment="Top" width="126">  
            <ListView.View>  
                <GridView>  
                    <GridViewColumn Header="Name" DisplayMemberBinding="{Binding Item1}" />  
                    <GridViewColumn Header="Score" DisplayMemberBinding="{Binding Item2}"/>  
                </GridView>  
            </ListView.View>  
        </ListView>  

结果:

这符合您的期望吗?

58952-11.png


如果回复有帮助,请点击“接受答案”并点赞。 注意:如果您想接收此线程的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知。

此答案是否有帮助?

1 个人认为此答案很有帮助。
0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助

你的答案

提问者可以将答案标记为“已接受”,审查方可以将答案标记为“已推荐”,这有助于用户了解答案是否解决了提问者的问题。