PDA

View Full Version : نمایش نتیجه جستجو بدون استفاده از دیتا گرید ویو



shima2006
دوشنبه 16 شهریور 1388, 01:40 صبح
سلام
من میخوام از طریق یک دستور سکلت یک جستجو انجام بدم و حالا برای مشاهده نتیجه این جستجو دو تا مشکل دارم :
1- من نمی خوام نتیجه جستجو رو تویه دیتا گرید ویو ببینم بلکه میخوام فیلدهای مربوط به هر رکورد بازیابی شده در یک سری تکست باکس نمایش داده بشه
2-برای مشاهده فیلدهایه مربوط به رکورد بعدی میخوام کاربر دکمه ای رو با عنوان بعدی بزنه و رکورد بعدی رو در تکست باکس های مربوطه مشاهده کنه
متشکرم

atryad
دوشنبه 16 شهریور 1388, 01:59 صبح
سلام
من میخوام از طریق یک دستور سکلت یک جستجو انجام بدم و حالا برای مشاهده نتیجه این جستجو دو تا مشکل دارم :
1- من نمی خوام نتیجه جستجو رو تویه دیتا گرید ویو ببینم بلکه میخوام فیلدهای مربوط به هر رکورد بازیابی شده در یک سری تکست باکس نمایش داده بشه
2-برای مشاهده فیلدهایه مربوط به رکورد بعدی میخوام کاربر دکمه ای رو با عنوان بعدی بزنه و رکورد بعدی رو در تکست باکس های مربوطه مشاهده کنه
متشکرم
با سلام میتونی به این صورت عمل کنی

private const string _ConnectionString =
"Data Source=PC name;Initial Catalog=Db name;Integrated Security=True";
string CommandText = "SELECT * " +
" FROM Tabelname ";


objConnection = new SqlConnection(path);
objDataAdapter = new SqlDataAdapter(CommandText, objConnection);
// Initialize a new instance of the DataSet object...
objDataSet = new DataSet();
// Fill the DataSet object with data...
objDataAdapter.Fill(objDataSet, "Tabelname");
// Set the DataView object to the DataSet object...
objDataView = new DataView(objDataSet.Tables["Tabelname"]);
// Set our CurrencyManager object
// to the DataView object...
objCurrencyManager = (CurrencyManager)(this.BindingContext[objDataView]);
// Clear any previous bindings...
Int64 ss;
ss = objCurrencyManager.Count;//تعداد رکوردها
label40.DataBindings.Clear();
label40.DataBindings.Add("Text", objDataView, "Name");//وصل کردن فیلد نام به لیبل 40
comboBox3.DataBindings.Clear();

comboBox3.DataBindings.Add("Text", objDataView, "Family");

objCurrencyManager.Position = 0;//رفتن به رکورد اول


http://ungmcw.bay.livefilestore.com/y1pmJH2g49OD4xKc8s38QSMiW-zj81k-UShZUWT2sWcccfYw3vukydH0vZig-cOO5aOkyvc1WVewOR6b1Z1-Wr9Dw/untitled.JPG
1
objCurrencyManager.Position = 0;
ShowPosition(); 2
objCurrencyManager.Position -= 1;
ShowPosition();3
objCurrencyManager.Position += 1;
ShowPosition();4
objCurrencyManager.Position = objCurrencyManager.Count - 1;
ShowPosition();5
private void ShowPosition()
{

textBox5.Text = (objCurrencyManager.Position + 1) + " of " + objCurrencyManager.Count;

}

saeeedft
دوشنبه 16 شهریور 1388, 02:05 صبح
با سلام، شما دستورتونو بنویسید و یک شرط هم براش بذارید،بعد اطلاعاتی که طبق شرطتتون بازیابی مشه رو به جای اینکه به دیتاگرید بایند کنید به textbox بایند کنید، از این طریق :

textbox1.databinding.add("text","dataset name","field name"(CODE][/CODE]
برای حرکت بین رکورداتون هم باید از کلاس bindingcontext استفاده کنید .ه مثال براتون میذارم،اگه پیداش کنم.

saeeedft
دوشنبه 16 شهریور 1388, 02:14 صبح
روشی که دوستمون در بالا گفته یکی ازروش ها پیمایش رکوردهاست،از این هم میتونید استفاده کنید

shahab_ss
دوشنبه 16 شهریور 1388, 16:38 عصر
جواب "دستور سکلت" رو بریز تو یه BindingSource بعد BindingSource رو به یک BindingNavigator بچسبون !
حالا کنترل هایی که داری رو به فیلد های BindingSource بایند کن. تمـــام/.

shima2006
سه شنبه 17 شهریور 1388, 22:06 عصر
جواب "دستور سکلت" رو بریز تو یه BindingSource بعد BindingSource رو به یک BindingNavigator بچسبون !
حالا کنترل هایی که داری رو به فیلد های BindingSource بایند کن. تمـــام/.


shahab_ss می تونی یک مثال هم برام بزنی؟:افسرده:

راستی اسم این کنترل چیه؟؟؟!
http://ungmcw.bay.livefilestore.com/y1pmJH2g49OD4xKc8s38QSMiW-zj81k-UShZUWT2sWcccfYw3vukydH0vZig-cOO5aOkyvc1WVewOR6b1Z1-Wr9Dw/untitled.JPG

atryad
چهارشنبه 18 شهریور 1388, 01:21 صبح
shahab_ss می تونی یک مثال هم برام بزنی؟:افسرده:

راستی اسم این کنترل چیه؟؟؟!
http://ungmcw.bay.livefilestore.com/y1pmJH2g49OD4xKc8s38QSMiW-zj81k-UShZUWT2sWcccfYw3vukydH0vZig-cOO5aOkyvc1WVewOR6b1Z1-Wr9Dw/untitled.JPG
دوست عزیز این کنترل نیست
چهار تا دکمه که با علامت>| و > هستن و یه تکس باکس با قابلیت فقط خواندنی درون یه گروپ بوکس
که کار حرکت بین رکوردها رو انجام میدن و کد هر کدوم رو با شماره هم برات گذاشتم

shahab_ss
چهارشنبه 18 شهریور 1388, 06:21 صبح
این هم مثال

sepehr_sepehr
چهارشنبه 18 شهریور 1388, 08:04 صبح
آیا روش دیگری به جز استفاده از bindingcontext و currencymanager برای حرکت بین رکوردها وجود داره؟

shima2006
یک شنبه 22 شهریور 1388, 00:14 صبح
shahab_ss از مثالتون استفاده کردم فقط الان یک مشکلی دارم !
در مثال شما تکست باکس ها از یک جدول مشخص اطلاعات رو میخونن در حالی که تکست باکس های من از یک Store Procedure اطلاعات رو می خونن و اینکه من میخوام یک شرط بذارم که رکوردهایه خاصی رو برام برگردونه و این شرط رو کاربر تعیین می کنه
این ظاهر فرم منه
36837

ولی متاسفانه نمی دونم چطوری باید این شرط رو در رکوردهایی که بازیابی میشه اعمال کنم:متفکر:

saeeedft
یک شنبه 22 شهریور 1388, 00:56 صبح
سلام دوست عزیز،شما کافیه بی جای نام جدول نام storeprocedure رو به دیتا اداپتر بدین،متوجه نشدید بگید بیشتر توضیح بدم

shahab_ss
یک شنبه 22 شهریور 1388, 06:10 صبح
در مثال شما تکست باکس ها از یک جدول مشخص اطلاعات رو میخونن در حالی که تکست باکس های من از یک Store Procedure اطلاعات رو می خوننببینید ، در مثال من تکست باکس ها به BindingSource بایند شده (نه جدول).
کاری که شما باید انجام بدید اینه که نتیجه StoredProcedure رو به BindingSource.Datasource
انتقال بدید. بقیه کارها قبلاً انجام شده !:چشمک:

shima2006
یک شنبه 22 شهریور 1388, 13:49 عصر
shahab_ss فرم منو نگاه کردید؟
من نتیجه StoredProcedure رو به BindingSource.Datasource انتقال دادم و الان فرمم داره درست کار میکنه فقط همونطور که قبلا گفتم من میخوام بازه تاریخی که کاربر وارد می کنه در Store Procedure اعمال بشه
یعنی اول کاربر شرط رو تعیین می کنه بعد این شرط باید در Store Procedure اعمال بشه
ولی من نمی دونم باید چیکار کنم که وقتی کاربر دکمه جستجو رو کلیک کرد شرط من در استور پروسیجر اعمال بشه و تکست باکس ها فقط رکوردهایه شامل شرط رو برگردونن

shahab_ss
یک شنبه 22 شهریور 1388, 13:53 عصر
مشکل شما در پاس دادن پارامتر به StoredProcedure هست.
پیشنهاد میکنم کمی در این مورد جستجو کنید

shima2006
یک شنبه 22 شهریور 1388, 14:01 عصر
آفرین دقیقا مشکل من همینه
چون تویه کریستال ریپورت این کار رو راحت انجام میدم ولی اینجا......
به نظرتون کجا برایه جستجو در این مورد مناسبه؟

shahab_ss
یک شنبه 22 شهریور 1388, 14:09 عصر
به نظرتون کجا برایه جستجو در این مورد مناسبه؟

INTERNET !!! :بامزه:

http://www.csharp-station.com/Tutorials/AdoDotNet/Lesson07.aspx