如何比较 TextBox 中的值

Jiale Xue - MSFT 46,376 信誉分 Microsoft 供应商
2024-03-27T09:28:14.8766667+00:00

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

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

C#
C#
一种面向对象的类型安全的编程语言,它起源于 C 语言系列,包括对面向组件的编程的支持。
187 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Hui Liu-MSFT 48,571 信誉分 Microsoft 供应商
    2024-03-27T11:11:52.4733333+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 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。