PDA

View Full Version : ايجاد كوئري در gridview



mononok
جمعه 13 شهریور 1388, 16:00 عصر
سلام دوستان

اين ممكنه كه ما بدون كد نويسي و از طريق خود datagrid كه با datasource به پايگاه وصل كرديم بتونيم از فلش كوچكي كه كنار datagrid ظاهر ميشه add query رو انتخاب كنيم و از صفحه ظاهر شده كوئري رو بسازيم تا تو datagrid نمايش داده بشه؟؟؟
من اين كارو مي كنم ولي اين خطا مياد وقتي مي خوام ok رو بزنم:
the schema returned by the new query differs from base query
مي دونم چي ميگه اين كه با كوئري پيش فرض خودش تفاوت داره ولي خب اگه نميشه كوئري پيش فرضش رو تغيير داد پس چرا اصلا add query گذاشتن؟
نمي دونم منظورم رو رسوندم يا نه!!:متفکر:
لطفا نگيد كه جست و جو كن چون توي سايتو يه سرچ زدم و حتي گوگلو ولي چيزي كه مي خواستم رو پيدا نكردم!
تشكر

toopak
جمعه 13 شهریور 1388, 16:33 عصر
سلام
مشکل اینه که اون کوئری که شما نوشتی با اون شمایل دیتاگرید مطابقت نداره
یعنی احتمالا دیتاگرید تمام فیلدها رو بیرون کشیده ولی شما فقط چندتا از فیلدها رو خواستید
من پیشنهاد میکنم از کد استفاده کنید
این پر کردن دیتاگرید با بانک اکسس
امیدوارم مشکلت رو حل کنه


Dim da As OleDbDataAdapter
Dim con As OleDbConnection
con = New OleDbConnection("provider=microsoft.jet.OLEDB.4.0;data source=" & Application.StartupPath & "\code.mdb;")
Dim ds As New DataSet
da = New OleDbDataAdapter("select * from table where(lang= '" & ComboBox1.Text & "') ", con)
da.Fill(ds, "table")
DataGridView1.DataSource = ds
DataGridView1.DataMember = "table"

mononok
جمعه 13 شهریور 1388, 17:57 عصر
دوست عزيز ممنون از راهنماييت:لبخندساده:
الان اين طور كه به نظر مي رسه شما از يه جدول كوئري گرفتيد ولي من نياز دارم كه در كوئريم دو جدول رو ادغام كنم و از هر كدوم چند فيلدشو بگيرم با اين حساب نمي دونم اسم كدوم جدولم رو بنويسم به جاي اسم tabale كه شما تو كد اورديد چون هر دو جدول رو لازم دارم؟؟؟

ebrahimv
جمعه 13 شهریور 1388, 18:14 عصر
سلام به نظر من شما در ديتاست يه جدول جديد ايجاد كنيد كه تركيبي از دو جدول باشه بعد جدول ساخته شده را به ديتاقريد متصل كن
من از اين روش استفاده ميكنم و خيلي هم راحته

saadi2
جمعه 13 شهریور 1388, 19:11 عصر
یک نمونه برای کوری گرفتن از جند جدول


"SELECT kharid.idkharid, kharid.tarikh, " & _
" (moshtari.fname + ' ' + moshtari.lname) AS name, " & _
" SUM(jozkharid.wazn * jozkharid.fi) AS bes, " & _
" SUM(jozkharid.pardakhti) AS sumpardakhti " & _
" , kharid.sharh FROM kharid " & _
" INNER JOIN moshtari ON kharid.idmoshtari = moshtari.idmoshtari " & _
" INNER JOIN jozkharid ON kharid.idkharid = jozkharid.idkharid " & _
" GROUP BY kharid.idkharid, kharid.tarikh, moshtari.fname, " & _
" moshtari.lname, kharid.sharh "

mononok
جمعه 13 شهریور 1388, 21:47 عصر
ممنون از همه
ولي يه نكته در اين كوئري هنوز مونده من تو كد نويسي اونجايي كه قراره در da و در نمايش datagrid تو قسمت member اسم جدول رو بيارم ،اسم كدوم جدولو بايد بنويسم

DataGridView1.DataMember = "table"

da.Fill(ds, "table")

mononok
شنبه 14 شهریور 1388, 10:44 صبح
كسي نمي دونه چطور بايد نتيجه يه كوئري كه از دو جدول گرفته ميشه رو در gridview نمايش داد؟

saadi2
شنبه 14 شهریور 1388, 13:20 عصر
در کدی که برات فرستادم زده FROM kharid پس باید نام تیبل و kharid بزنیو اگه به جای dataset از data table استفاده کنی دیگه لازم نیس از datamember استفاده کنی و فقط از datagrid.datasource = datatable استفاده می کنی

saadi2
شنبه 14 شهریور 1388, 13:43 عصر
یه نمونه برات نوشتم