نمایش نتایج 1 تا 18 از 18

نام تاپیک: استفاده از dataGrid

  1. #1
    کاربر دائمی آواتار water_lily_2012
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    اصفهان
    پست
    659

    استفاده از dataGrid

    سلام
    من یک دیتاگرید دارم که می خواهم با استفاده از Linq یکی از جدول هایم را در آن بارگذاری کنم. از کدام خاصیت این دیتاگرید باید استفاده کنم و به چه صورت.
    لطفا یک کد کامل بنویسید.

  2. #2
    کاربر دائمی آواتار PetekDincos
    تاریخ عضویت
    آبان 1389
    محل زندگی
    توهم
    پست
    594

    نقل قول: استفاده از dataGrid

    با سلام
    با استفاده از خاصیت ItemsSource این کنترل می توانید این کار رو انجام دهید و کوئری که از دیتابیس می گیرید را به این خاصیت بایند کنید با تشکر

  3. #3
    کاربر دائمی آواتار water_lily_2012
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    اصفهان
    پست
    659

    نقل قول: استفاده از dataGrid

    این کار را انجام میدهم ولی datagrid پر نمیشه.
    این هم کد:
            private void button1_Click(object sender, RoutedEventArgs e)
    {


    var db = new ALinq.DataContext("Library.mdb");
    var GetBooksQuery = from book in db.GetTable<TBLBook>()
    select book;
    dataGrid1.ItemsSource = GetBooksQuery;

    }
    }

    [ALinq.Mapping.Table(Name = "TBLBook")]
    public class TBLBook
    {
    [ALinq.Mapping.Column]
    public int ID;

    [ALinq.Mapping.Column]
    public string DOE;

    [ALinq.Mapping.Column]
    public string Name;

    [ALinq.Mapping.Column]
    public string Author;

    [ALinq.Mapping.Column]
    public string BaseTopic;

    [ALinq.Mapping.Column]
    public string SecondaryTopic;

    [ALinq.Mapping.Column]
    public int Language;

    [ALinq.Mapping.Column]
    public string ISBN;

    [ALinq.Mapping.Column]
    public string Translator;

    [ALinq.Mapping.Column]
    public string Marker;

    [ALinq.Mapping.Column]
    public string YearIssuance;

    [ALinq.Mapping.Column]
    public string Edition;

    [ALinq.Mapping.Column]
    public int Price;

    [ALinq.Mapping.Column]
    public string Some;

    [ALinq.Mapping.Column]
    public string Backlog;

    [ALinq.Mapping.Column]
    public string Information;
    }

  4. #4
    کاربر دائمی آواتار water_lily_2012
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    اصفهان
    پست
    659

    نقل قول: استفاده از dataGrid

    این هم خطایی که تولید میشه.

    error2.jpg

  5. #5
    کاربر دائمی آواتار PetekDincos
    تاریخ عضویت
    آبان 1389
    محل زندگی
    توهم
    پست
    594

    نقل قول: استفاده از dataGrid

    با سلام
    آیا کوئری که می گیرید درسته شما با یایند دیتاگراید کاری نداشته باشید اول بررسی کنید که آیا کوئری تون مشکل نداشته باشه چون این Error به بایند دیتاگراید مربوط نمی شه با تشکر

  6. #6
    کاربر دائمی آواتار water_lily_2012
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    اصفهان
    پست
    659

    نقل قول: استفاده از dataGrid

    درسته کوئری مشکل داره.
    مشکل از جدول هست. ولی نمی دونم چرا خطا میده. با یکی دیگه از جدول هام امتحان کردم کوئری درست کار داد.
    جدول چطور باشه این خطا را تولید می کنه.

  7. #7
    کاربر دائمی آواتار farashah_jalal
    تاریخ عضویت
    مهر 1387
    محل زندگی
    یزد - تفت
    سن
    36
    پست
    148

    نقل قول: استفاده از dataGrid

    پست زیر می تونه بهت کمک کنه.
    https://barnamenevis.org/showthread.p...D9%86+datagrid
    باز هم اگر مشکلت حل نشد کد رو بزار تا بررسی کنیم.

  8. #8
    کاربر دائمی آواتار water_lily_2012
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    اصفهان
    پست
    659

    نقل قول: استفاده از dataGrid

    با هزار مکافات بایند را انجام دادم ولی چیزی در دیتاگرید نمایش نمیده.
    یعنی به تعداد رکورد های جدول در دیتاگرید رکورد میسازه ولی مقادیر داخلشون نیست.
    دستورات هم همانهایی که بالا نوشتم.

  9. #9
    کاربر دائمی آواتار farashah_jalal
    تاریخ عضویت
    مهر 1387
    محل زندگی
    یزد - تفت
    سن
    36
    پست
    148

    نقل قول: استفاده از dataGrid

    برای این که بخوای از linq استفاده کنی راحتر این هست که یک Observablecollection بسازی و مقادیر به کمک ان با itemsourse بایند کنی.

    var tmp = from u in userRepository.User
    select u;
    this.AllUser = new ObservableCollection<User>(tmp.ToList());

    public ObservableCollection<User> AllUser
    {
    get;
    private set;
    }


    برای این داده داخل datagrid نمایش بده اون ها رو بایند کردی با مقدایر جدولت مانند مثال زیر؟

    <DataGrid FlowDirection="RightToLeft" ItemsSource="{Binding AllUser}" AutoGenerateColumns="False" Height="auto" HorizontalAlignment="Left" Margin="12,55,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="619" >
    <DataGrid.Columns>
    <DataGridTemplateColumn Header="نام و نام خانوادگی">
    <DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
    <TextBlock Text="{Binding Path=FullName}" />
    </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
    <DataGridTemplateColumn Header="نام کاربری">
    <DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
    <TextBlock Text="{Binding UserName}" />
    </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
    <DataGridTemplateColumn Header="تلفن">
    <DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
    <TextBlock Text="{Binding Phon}" />
    </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
    <DataGridTemplateColumn Header="موبایل">
    <DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
    <TextBlock Text="{Binding Mobile }" />
    </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
    <DataGridTemplateColumn Header="تصویر">
    <DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
    <Image Width="60" Height="60" Source="{Binding ImagePath}" />
    </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
    </DataGridTemplateColumn>
    </DataGrid.Columns>
    </DataGrid>

  10. #10
    کاربر دائمی آواتار water_lily_2012
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    اصفهان
    پست
    659

    نقل قول: استفاده از dataGrid

    خیلی لطف کردید مشکل حل شد.
    باید به این صورت می نوشتم.
    public int ID { get; set; }


    اما یک مشکل دیگر دارم. من می خواهم همه دستورات را داخل یک کلاس ببرم و از برنامه فقط یک خط کد زیر را اجرا کنم. اما نمی دانم مقدار برگشتی کلاس باید چگونه باشد؟
    dataGrid1.ItemsSource = GetBooksQuery;

  11. #11
    کاربر دائمی آواتار farashah_jalal
    تاریخ عضویت
    مهر 1387
    محل زندگی
    یزد - تفت
    سن
    36
    پست
    148

    نقل قول: استفاده از dataGrid

    اما یک مشکل دیگر دارم. من می خواهم همه دستورات را داخل یک کلاس ببرم و از برنامه فقط یک خط کد زیر را اجرا کنم. اما نمی دانم مقدار برگشتی کلاس باید چگونه باشد؟
    dataGrid1.ItemsSource = GetBooksQuery;
    نظر من این است که از معماری Mvvm استفاده کنید. کد های مربوط به model از view جدا بشه .برای مطالعه در مورد اون و نحوه کار این معماری می تونید پست زیر رو نگاه کنید.
    https://barnamenevis.org/showthread.p...pf-Programming

  12. #12
    کاربر دائمی آواتار PetekDincos
    تاریخ عضویت
    آبان 1389
    محل زندگی
    توهم
    پست
    594

    نقل قول: استفاده از dataGrid

    با سلام
    نوع برگشتی کلاس برای کوئری شما <نام جدول است>IQueryable با تشکر

  13. #13
    کاربر دائمی آواتار water_lily_2012
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    اصفهان
    پست
    659

    نقل قول: استفاده از dataGrid

    نقل قول نوشته شده توسط PetekDincos مشاهده تاپیک
    با سلام
    نوع برگشتی کلاس برای کوئری شما <نام جدول است>IQueryable با تشکر
    بله درست شد.
    ولی چه تفاوتی بین IQueryable با استفاده از Mvvm هست؟
    آخه دوستمون گفت که از این معماری استفاده کنم.

  14. #14
    کاربر دائمی آواتار ahrimaneahurai
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    ایران
    پست
    554

    نقل قول: استفاده از dataGrid

    روش MVVM یه روش برای جداسازی کامل بخش طراحی از بخش کدنویسی هست.
    تقریبا چیزی شبیه معماری 3 لایه در برنامه های ویندوزی. شما در بخش طراحی در نرم افزار های دیگه طراحیتون رو انجام می دید و کدنویسیتون رو انجام می دید و فقط با استفاده از Bind کردن تمام اطلاعات بخش طراحی رو از بخش کدنویسی یا Model میگیرید.

  15. #15
    کاربر دائمی آواتار water_lily_2012
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    اصفهان
    پست
    659

    نقل قول: استفاده از dataGrid

    یک مشکل دیگر هم پیش امد.
    تعداد ستونهای من دو برابر هست.
    اول ستون هایی که به فارسی در دیتاگرید تعریف کرده ام و بعد ستون هایی با نام اصلی آنها در جدول.
    چه کنم که فقط فارسی ها را نمایش بده.

  16. #16
    کاربر دائمی آواتار PetekDincos
    تاریخ عضویت
    آبان 1389
    محل زندگی
    توهم
    پست
    594

    نقل قول: استفاده از dataGrid

    با سلام
    پراپرتی AutoGenerateColumns را برای دیتاگراید برابر false قرار بدید با تشکر

  17. #17
    کاربر دائمی آواتار water_lily_2012
    تاریخ عضویت
    مرداد 1388
    محل زندگی
    اصفهان
    پست
    659

    نقل قول: استفاده از dataGrid

    چرا برای فیلد هایی که در جدول خالی هستند خطا صادر میشه.
    چه کار کنم تا مشکل حل بشه؟

    حالا من یاد گرفتم اطلاعات را از جدول وارد دیتاگرید کنم.
    حالا روش ارسال اطلاعات به چه صورت هست. می خواهم اطلاعات را از چند تا textbox گرفته و یک رکورد جدید در جدول ایجاد بشه.

  18. #18
    کاربر دائمی آواتار PetekDincos
    تاریخ عضویت
    آبان 1389
    محل زندگی
    توهم
    پست
    594

    نقل قول: استفاده از dataGrid

    با سلام
    شما برای وارد کردن داده از چند TextBox و نمایش آن در DataGrid می تونید یک رکورد در جدول ذخیره کرده با توجه به این مقادیر و سپس دوباره از جدول کوئری گرفته و اون را به دیتاگراید بایند کنید اما راه بهینه ای نیست روش بهتر اینه که از ویوها استفاده کنید به این صورت که برای اولین بار که کوئری از دیتابیس می گیرید با توجه به ایبکه کوئری شما IQueryable باشه یا List می تونید به ترتیب از ویوهای BindingListCollectinView و یا ListCollectionView استفاده نمایید به این شکل که یک متغییر از BindingListCollectionView تعریف کرده و بعد از بایند دیتاگراید به وسیله کوئریتون در لود صفحه بیایید ویوتون را به این صورت از دیتاگراید بایند کنید

    BindingListCollectionView MyView=(BindingListCollectionView)((CollectionView Source.GetDefaultView(MydataGrid.ItemsSource)));

    بعد هر کجا خواستید رکوردی درج نمایید به این صورت مثلا نام جدول شما MyTable است

    MyTable NewRecord=(MyTable)(MyView.AddNew());
    NewRecord.field in Table=Value;
    .
    .
    MyView.CommitNew();

    یک رکورد در دیتاگراید اضافه شده اما در جدول به صورت فیزیکی اضافه نشده که برای این کار هم بایستی در هنگام بستن فرم بسته به اینکه از کدام ORM استفاده می کنید متد SaveChange() و یا SubmitChange() رو فراخوانی کنید تا اطلاعاتتون در دیتابیس نیز ذخیره بشه و برای سوال اولتون نمی دنم چه کار کردید و Error چیه با تشکر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •