C#
一种面向对象的类型安全的编程语言,它起源于 C 语言系列,包括对面向组件的编程的支持。
187 个问题
我的项目中有一个数据网格和一个文本框,Datagrid 从 SQL 数据库加载所有数据,当我选择每一行时,它都显示在 texbox1 中,我的问题是。我是否可以在文本框中比较这些值,并按最高值对每个值进行评分,并将分级值保存到 DataGrid 和数据库中?请有人给我一个清晰而全面的答案,或者至少尝试为我的问题提供解决方案。
Note:此问题总结整理于: How To Compare values in a TextBox
数据库中的示例数据:
示例代码:
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>
结果: 这符合您的期望吗?
如果回复有帮助,请点击“接受答案”并点赞。 注意:如果您想接收此线程的相关电子邮件通知,请按照我们文档中的步骤启用电子邮件通知。