سلام
توی SQL Server یک کویری دارم اون رو اجرا میکنم و درسته :
من توی WPF سی شارپ با Entity Framwork کار میکنم اومدم یک کویری زدم که دیتا گرید رو پر کنه و ستون ها رو به ترتیب بایندیگ کردم و درست بود
اومدم یک کویری جدید همونی که توی عکس بالا هست رو زدم دیدم ستون واحد ها (از یک جدول که مربوط به کالا ها هستش و نام ستونش VAHED هست) خالیه
این هم کد XAML :
<!--واحد کالا-->
<DataGridTextColumn Header="واحد کالا" Binding="{Binding NAMES}" MinWidth="100">
<DataGridTextColumn.HeaderStyle>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="HorizontalContentAlignment" Value="Center"/>
</Style>
</DataGridTextColumn.HeaderStyle>
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Setter Property="HorizontalAlignment" Value="Right"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
اینهم کد CS :
var qre = dbms.Database.SqlQuery<STUF_DEF>("SELECT * FROM STUF_DEF Full JOIN TCOD_VAHEDS ON STUF_DEF.VAHED = TCOD_VAHEDS.CODE");
dgv_Kalaha.ItemsSource = qre.ToList();
رفتم متغیر var کویری رو چک کنم دیدم این محتواشه
به نظرم اگر کوئری خودتون رو به صورت زیر بنویسید بهتر هست. چون Full Join به صورت ضربدری عملیات جوین رو انجام میده و فکر نمیکنم پاسخ صحیحی به شما بده
SELECT * FROM STUF_DEF Inner JOIN TCOD_VAHEDS ON STUF_DEF.VAHED = TCOD_VAHEDS.CODE
در واقع شما می خواهید که از جدول سمت چپ کوئری که همون STUF_DEF هست اطلاعات رو نمایش بدید و از جدول سمت راست هم که TCOD_VAHEDS هست نوع واحد اندازه گیری رو نمایش بدید.
بنابراین اطلاعات باید از جدول سمت چپ نمایش داده بشه و از جدول سمت راست فقط معادل واحد اندازه گیری نمایش داده بشه. فکر کنم با Inner Join و یا حتی Join خالی نتیجه بهتری بگیرید. تست کنید ببینید چجوری میشه.
پیشنهاد
کوئری بالا رو توی Sql Server تبدیل به یک View کنید بنظرم و بعد View ی ایجاد شده رو در مدل داده ای خودتون در سی شارپ اضافه کنید.
Create View Vw_MyView As
SELECT * FROM STUF_DEF Inner JOIN TCOD_VAHEDS ON STUF_DEF.VAHED = TCOD_VAHEDS.CODE
و سپس در دستورات خودتون از ویو استفاده کنید. احتمالا این مشکل حل بشه.
var qre = dbms.Database.SqlQuery<Vw_MyView>("SELECT * FROM Vw_MyView");
dgv_Kalaha.ItemsSource = qre.ToList();
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2006
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1160
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
597
- پاسخ :
1
|
تاریخ :
1403/07/13
- ساعت :
12:06:00 PM
- بازدید :
349
- پاسخ :
1
|
تاریخ :
1403/06/24
- ساعت :
08:52:00 PM
- بازدید :
318
- پاسخ :
1
|
تاریخ :
1398/09/14
- ساعت :
01:58:00 PM
- بازدید :
4268
- پاسخ :
1
|
تاریخ :
1398/09/16
- ساعت :
11:41:00 AM
- بازدید :
4281
- پاسخ :
1
|
تاریخ :
1398/09/07
- ساعت :
02:15:00 PM
- بازدید :
3875
- پاسخ :
5
|
تاریخ :
1403/05/16
- ساعت :
05:43:00 AM
- بازدید :
660
- پاسخ :
0
|
تاریخ :
1398/09/05
- ساعت :
06:04:00 PM
- بازدید :
3172
- پاسخ :
2
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2006
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
73
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
108
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1033
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
428
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
930
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4797
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1160
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
597
- پاسخ :
1
|