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

نام تاپیک: اتصال DataGrid به بانک Sql

  1. #1
    کاربر دائمی آواتار Davood_amega
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    قزوین
    پست
    274

    اتصال DataGrid به بانک Sql

    سلام به مهندسین عزیز
    در حال نوشتن برنامه ای در WPF هستم اما برای اتصال بانک با یک DataGrid دچار مشکل شده ام .
    ابتدا یک DataGrid به XAML اضافه می کنم و کد زیر را هم اضافه می کنم .

    ItemsSource="{Binding}"
    یک Stored Procedure دارم که برای Select کردن یک فیلد از بانک استفاده می شود .کدش هم به صورت زیر است .
    CREATE PROCEDURE Select_LegalName
    AS
    SELECT LT_Name
    FROM Legal_Type
    GO
    و در Visual Studio از کد زیر استفاده می کنم .
    SqlConnection connect = new SqlConnection("Data Source=.;Initial Catalog=GuestHouse;uid=ADMIN;pwd=admin");
    SqlDataAdapter da = new SqlDataAdapter();
    SqlCommand command = new SqlCommand("SP_Select_LegalName", connect);
    da.SelectCommand = command;
    DataTable dt = new DataTable();
    dt.Columns.Add("نام");
    DataRow row;
    SqlDataReader reader;
    connect.Open();
    reader = command.ExecuteReader();
    while (reader.Read())
    {
    row = dt.NewRow();
    row[0] = reader.GetSqlString(0);
    dt.Rows.Add(row);
    }

    DataView view=new DataView(dt);
    datagrid1.DataContext = view;
    و بعد از آن به تعداد رکوردهای فیلد موردنظر رکورد اضافه می کند اما به شکل زیر :

    ضمنا از Dataset و همچنین DataTable هم استفاده کردم اما تغییری نکرد .

  2. #2
    VIP آواتار مهدی فرزاد
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    اهواز
    سن
    43
    پست
    1,154

    نقل قول: اتصال DataGrid به بانک Sql

    از Linq to sql استفاده کنید اینم مثال بسیار ساده
    درضمن "{ItemsSource="{Binding هم نمی خواد
    فایل های ضمیمه فایل های ضمیمه

  3. #3
    کاربر دائمی آواتار aghayex
    تاریخ عضویت
    دی 1388
    محل زندگی
    https://telegram.me/Sed_kazem18
    پست
    924

    نقل قول: اتصال DataGrid به بانک Sql

    اینو چک کن


    SqlConnection sqlcon = newSqlConnection("Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirecto ry|\\db\\Database1.mdf;Integrated Security=True;User Instance=True");

    DataTable ds = new DataTable();
    SqlDataAdapter sqldc = new SqlDataAdapter();
    sqldc.SelectCommand = new SqlCommand();
    sqldc.SelectCommand.Connection = sqlcon;
    sqldc.SelectCommand.CommandText = aSP_Select_LegalName;
    sqldc.SelectCommand.CommandType =


    CommandType.StoredProcedure;
    sqlcon.Open();
    sqldc.SelectCommand.ExecuteNonQuery();
    sqldc.Fill(ds);
    if (ds.Rows.Count > 0)
    {
    dg1.DataContext = ds.DefaultView;
    }


  4. #4

    نقل قول: اتصال DataGrid به بانک Sql

    و بعد از آن به تعداد رکوردهای فیلد موردنظر رکورد اضافه می کند اما به شکل زیر :
    این خط رو قبل از سطر آخر اضافه کن
    DataGrid1.AutoGenerateColumns = True

  5. #5

    نقل قول: اتصال DataGrid به بانک Sql

    نقل قول نوشته شده توسط Mehdi550u مشاهده تاپیک
    از Linq to sql استفاده کنید اینم مثال بسیار ساده
    درضمن "{ItemsSource="{Binding هم نمی خواد
    در پروژه ی شما یک textBox اضافه کردم و تو textChanged نوشتم
            private void textBox1_TextChanged(object sender, TextChangedEventArgs e)
    {
    var q = from a in Db.Tests
    where a.FirstName.Contains(textBox1.Text)
    select a;
    dataGrid1.ItemsSource = q;
    }


    تو برنامه شما کاملا سرچ رو درست انجام میده و با پاک شدن textBox دوباره تمام رکوردها نشون داده میشه

    ولی عین همین رو تو برنامه ی خودم استفاده کردم به محض وارد کرد اولین کاراکتر در textBox رکوردها میرن و دقیقا همون مشکل اول این تاپیک پیش میاد!

    لطفا راهنمایی کنید

  6. #6
    کاربر دائمی آواتار Davood_amega
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    قزوین
    پست
    274

    نقل قول: اتصال DataGrid به بانک Sql

    مهندس آخر اینو تست کردی ؟
    نقل قول نوشته شده توسط ashkan209 مشاهده تاپیک
    این خط رو قبل از سطر آخر اضافه کن
    DataGrid1.AutoGenerateColumns = True

  7. #7

    نقل قول: اتصال DataGrid به بانک Sql

    بله این گزینه از اول true بود

    داشتم نمونه برنامه ی جناب Mehdi550u رو می دیدم! تو propreties دیتاگریدها یه تفاوت هایی وجود داشت! مثلا مال من Itemsource تو لیستش نبود البته از طریق کد میشه ازش استفاده کرد. ممکنه ایراد از Datagird باشه؟ از کجا میشه فهمید؟

  8. #8
    VIP آواتار مهدی فرزاد
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    اهواز
    سن
    43
    پست
    1,154

    نقل قول: اتصال DataGrid به بانک Sql

    نقل قول نوشته شده توسط Shahab_H مشاهده تاپیک
    بله این گزینه از اول true بود

    داشتم نمونه برنامه ی جناب Mehdi550u رو می دیدم! تو propreties دیتاگریدها یه تفاوت هایی وجود داشت! مثلا مال من Itemsource تو لیستش نبود البته از طریق کد میشه ازش استفاده کرد. ممکنه ایراد از Datagird باشه؟ از کجا میشه فهمید؟
    سلام
    فایل برنامت رو ضمیه کن ببینم
    و درضمن در روشی که من مثال زدم اصلا احتیاجی به تنظیم ItemsSource در دیتا گردید ندارید
    اما اگه میخواید DataGrid1.AutoGenerateColumns = True باید برای هرکدوم از فیلدهایی که در دیتا گرید دارید Binding درست کنید
      <Custom:DataGridTextColumn Binding="{Binding LastName}" CanUserReorder="False" CanUserResize="False" CanUserSort="False" FontFamily="Tahoma" Header="نام خانوادگی" IsReadOnly="True" Width="150" />

  9. #9

    نقل قول: اتصال DataGrid به بانک Sql

    نقل قول نوشته شده توسط Mehdi550u مشاهده تاپیک
    سلام
    فایل برنامت رو ضمیه کن ببینم
    و درضمن در روشی که من مثال زدم اصلا احتیاجی به تنظیم ItemsSource در دیتا گردید ندارید
    اما اگه میخواید DataGrid1.AutoGenerateColumns = True باید برای هرکدوم از فیلدهایی که در دیتا گرید دارید Binding درست کنید
      <Custom:DataGridTextColumn Binding="{Binding LastName}" CanUserReorder="False" CanUserResize="False" CanUserSort="False" FontFamily="Tahoma" Header="نام خانوادگی" IsReadOnly="True" Width="150" />
    من false رو هم امتخان کردم
    کدم دقیقا مثل مثال شماست ولی تو برنامه شما کاملا درست کار می کنه ولی تو برنامه ی خودم نه
    ممنون از توجهتون

    فقط به خاطر تصاویر حجمش بالاست اگر داونلودش براتون سخته لطفا بگین تصویرها رو بردارم
    بازم ممنون
    http://www.4shared.com/file/bu5n0Fy3/Accounting.html

  10. #10
    VIP آواتار مهدی فرزاد
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    اهواز
    سن
    43
    پست
    1,154

    نقل قول: اتصال DataGrid به بانک Sql

    سلام
    من کدها رو دیدم مشکل شما در جستجو کاربر هاست؟؟
    شما کدهارو خیلی پیچوندید
    اگه مشکل در همین قسمت هست که من گفتم
    بگید تا کدها رو براتون اصلاح کنم
    روشی که بکار بردید از نظر من زیاد مناسب نیست

  11. #11

    نقل قول: اتصال DataGrid به بانک Sql

    نقل قول نوشته شده توسط Mehdi550u مشاهده تاپیک
    سلام
    من کدها رو دیدم مشکل شما در جستجو کاربر هاست؟؟
    شما کدهارو خیلی پیچوندید
    اگه مشکل در همین قسمت هست که من گفتم
    بگید تا کدها رو براتون اصلاح کنم
    روشی که بکار بردید از نظر من زیاد مناسب نیست
    نمی دونم چطور تشکر کنم که انقدر وقت می ذارید

    مشکل اصلی اینه که بعد سرچ تو دیتا گرید سطرها خالی نشون داده میشه شبیه پست اول همین تاپیک! ولی خیلی خوشحال مشیم شیوه ی بهتر جستوجو رو هم بهم بگین

  12. #12
    VIP آواتار مهدی فرزاد
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    اهواز
    سن
    43
    پست
    1,154

    نقل قول: اتصال DataGrid به بانک Sql

    سلام
    سعی مکیکنم تا فردا نمونه مناسب رو بهتون بدم

  13. #13

    نقل قول: اتصال DataGrid به بانک Sql

    خیلی خیلی لطف می کنید

  14. #14
    VIP آواتار مهدی فرزاد
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    اهواز
    سن
    43
    پست
    1,154

    نقل قول: اتصال DataGrid به بانک Sql

    سلام
    ببخشید کمی تاخیر داشتم
    قسمت جستجو رو نگاه کنید من کدهای اضافی دیگه رو حذف کردم تا فقط کدهای جستجو را ببیند
    به تعریف دیتا گرید هم در کد Xaml دقت کنید
    البته پیشنهاد میکنم اطلاعات را درون یک لیست بریزید و از در اون آن عمل جستجو را انجام دهید تا ارتباط شما با دیتابیس قطع باشد
    http://www.4shared.com/file/yF5XBNnX/Accounting.html

  15. #15

    نقل قول: اتصال DataGrid به بانک Sql

    خیلی خیلی خیلی طف کردین واقعا ممنونمو شرمنده
    امیدوارم بتونم جبران کنم

  16. #16
    کاربر دائمی آواتار Davood_amega
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    قزوین
    پست
    274

    نقل قول: اتصال DataGrid به بانک Sql

    سلام بهتر دیدم در همین تاپیک مشکلم رو توضیح بدهم .
    یک DataGrid دارم که ارتباط با بانکم را به صورت زیر برقرار می کنم .
    در Xaml
    <DataGrid Name="dtgStuff" AutoGenerateColumns="False" ItemSource="{Binding}">
    <DataGrid.Columns>
    <DataGridTextColumn Binding="{Binding Path=Stuff_Name}" Header="نام" IsReadOnly="True" />
    <DataGridTextColumn FontFamily="B Nazanin" FontSize="14" Header="تعداد کل" />
    </DataGrid.Columns>
    </DataGrid>
    در Code
    dtgStuff.DataContext= ...(DatatTble)... 
    حالا وقتی ارتباط برقرار می شود مشکلی نیست و ستون مربوط به نام را میاره ولی تعداد کل را می خواهم خودم وارد کنم ولی وقتی اطلاعات را وارد می کنم و LostFocus می شود اطلاعات مربوط به تعداد کل پاک می شود .
    به نظرم به خاطر ارتباط با DataGrid ، اما وقتی ItemSource را پاک می کنم اصلا ارتباط برقرار نمی شود .

  17. #17
    VIP آواتار مهدی فرزاد
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    اهواز
    سن
    43
    پست
    1,154

    نقل قول: اتصال DataGrid به بانک Sql

    سلام
    چرا دیتا تیبل؟؟
    از Linq استفاده کن
    مثال منو ببین
    مشکلت حل میشه
    ItemSource="{Binding هم نمیخواد



  18. #18
    کاربر دائمی آواتار Davood_amega
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    قزوین
    پست
    274

    نقل قول: اتصال DataGrid به بانک Sql

    متاسفانه از ابتدا از این روش استفاده نکرده ام . دیگه وسط کار نمیتونم تغییرات را اعمال کنم .

  19. #19
    VIP آواتار مهدی فرزاد
    تاریخ عضویت
    اردیبهشت 1403
    محل زندگی
    اهواز
    سن
    43
    پست
    1,154

    نقل قول: اتصال DataGrid به بانک Sql

    مشه نمونه کدت رو ببینم؟
    برام میل کن

  20. #20
    کاربر دائمی آواتار Davood_amega
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    قزوین
    پست
    274

    نقل قول: اتصال DataGrid به بانک Sql

    مشکل برطرف شد . در ستونهای که به DataTable متصل نیست از کد زیر استفاده کردم .
    <DataGridTextColumn Binding="{Binding Path=A,Mode=TwoWay}"/>
    که این A به جای متصل نیست .

  21. #21
    کاربر دائمی آواتار Davood_amega
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    قزوین
    پست
    274

    نقل قول: اتصال DataGrid به بانک Sql

    مشکلات پشت هم داره میاد .
    بنده در DataTable ام دو ستون دارم که دو ستون DataGrid راپرمیکنه ولی DataGridام 7ستون داردکه 5 ستونشو خودم پر می کنم .
    DataTable1.Columns.Add("Stuff_Name");
    DataTable1.Columns.Add("Stuff_Qty");
    .
    .
    .
    DataGrid1.DataContext=DataTable1;
    وبا کد زیر می توان مقدار DataGrid را به دست آورد .
    string ID = ((DataRowView)(this.DataGrid1.CurrentItem)).Row.It  emArray[1].ToString();
    و یا از کد زیر :
    string value = ((TextBlock)DataGrid1.SelectedCells[1].Column.GetCellContent(DataGrid1.SelectedCells[0].Item)).Text;
    ولی وقتی ازش استفاده می کنم فقط 2 تا ستون که با DataTable تعریف کردم را فقط میشناسه!
    بعد DataTable به صورت زیر تغییر دادم :
    DataGrid1.Columns.Add("Stuff_Name");
    DataGrid1.Columns.Add("Stuff_Qty");
    DataGrid1.Columns.Add("Stuff_CoffeeQty");
    DataGrid1.Columns.Add("Stuff_SaleCost");
    DataGrid1.Columns.Add("Stuff_BuyCost");
    DataGrid1.Columns.Add("Stuff_Cost");
    DataGrid1.Columns.Add("Stuff_ID");

    در Xaml :
    <DataGrid.Columns>
    <DataGridTextColumn Binding="{Binding Stuff_Name}"/>
    <DataGridTextColumn Binding="{Binding Stuff_Qty,Mode=TwoWay}"/>
    <DataGridTextColumn Binding="{Binding Stuff_CoffeeQty,Mode=TwoWay}"/>
    <DataGridTextColumn Binding="{Binding Stuff_SaleCost,Mode=TwoWay}"/>
    <DataGridTextColumn Binding="{Binding Stuff_BuyCost,Mode=TwoWay}"/>
    <DataGridTextColumn Binding="{Binding Stuff_Cost,Mode=TwoWay}" />
    <DataGridTextColumn Binding="{Binding Stuff_ID}" />
    </DataGrid.Columns>

    اما مقادیرش تغییر نمی کنه ! این Mode=TwoWay چرا کار نمی کنه ؟
    آخرین ویرایش به وسیله Davood_amega : چهارشنبه 21 مهر 1389 در 00:45 صبح

  22. #22
    کاربر دائمی آواتار Davood_amega
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    قزوین
    پست
    274

    نقل قول: اتصال DataGrid به بانک Sql

    لطفا کمک کنید !
    به چه صورتی اصلا میشه با برنامه نویس سطر اضافه کرد !

  23. #23
    کاربر دائمی آواتار Davood_amega
    تاریخ عضویت
    فروردین 1388
    محل زندگی
    قزوین
    پست
    274

    نقل قول: اتصال DataGrid به بانک Sql

    مشکل حل شد فقط کد زیر رابه یک Grid اختصاص دادم
    dtgStuff.DataContext= ...(DatatTble)... 

    ضمنا برای به دست آوردن سلول خاصی در DataGrid از کد زیر استفاده کردم !

    MessageBox.Show(((DataRowView)DataGrid1.Items[i]).Row[j].ToString());

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

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