【发布时间】:2021-09-25 21:48:45
【问题描述】:
我有一个 DataGrid,它显示我的 SQL Server 表中的每一行,状态为Unallocated。
如果悬停单元格或行,则工具提示需要显示如果我的数据库中有另一行的状态为Allocated,并匹配PostCode、Trade 和Date。
工具提示中的信息需要显示匹配的行JobNumber、PostCode、Trade和Date。
如果没有匹配项,则工具提示应显示“此作业没有匹配项”
我的数据网格:
<DataGrid.Columns>
<DataGridTextColumn Header="Job Number" Binding="{Binding ID}"/>
<DataGridTextColumn Header="Job" Binding="{Binding JobType}"/>
<DataGridTextColumn Header="Date" Binding="{Binding Path=JobDate, StringFormat=\{0:dd/MM/yyyy\}}" x:Name="JobDate"/>
<DataGridTextColumn Header="Post Code" Binding="{Binding PostCode}">
<DataGridTextColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="ToolTip" Value="Job 1234 Allocated to 'EXAMPLE' has been allocated to a job in this area at 13:00pm" />
</Style>
</DataGridTextColumn.CellStyle>
</DataGridTextColumn>
<DataGridTextColumn Header="Job Status" Binding="{Binding Allocation}"/></DataGrid.Columns>
我的 SQL 查询:
using (SqlConnection conn = new SqlConnection(connectionString))
{
var UserN = User.name;
conn.Open();
string query_search = "SELECT * FROM Jobs WHERE (ID LIKE @ID OR PostCode LIKE @PostCode) AND UserAllocated = '" + UserN + "' AND Allocation = 'Unallocated' AND JobStatus != 'Cancelled' ORDER BY JobDate DESC, PostCode";
SqlCommand cmd = new SqlCommand(query_search, conn);
cmd.Parameters.AddWithValue("@ID", "%" + Search.Text + "%");
cmd.Parameters.AddWithValue("@PostCode", "%" + Search.Text + "%");
using (SqlDataAdapter adapter = new SqlDataAdapter(cmd))
{
DataTable dt = new DataTable();
adapter.Fill(dt);
tblunallocatedjobs.ItemsSource = dt.DefaultView;
}
conn.Close();
}
我不确定如何解决这个问题,我尝试比较 SQL 查询但没有成功。
【问题讨论】:
标签: c# sql-server wpf