PDA

View Full Version : مشکل با دیتاگرید ویو



eletcomp
جمعه 04 بهمن 1392, 22:22 عصر
با سلام
همانطوری که از عکس دوم مشخص هست اسم ستون های دیتاگرید فارسی هست (به صورت دستی فارسی کردم)ولی زمانی که در تکس باکس کدی را برای سرچ می نویسم! زمانی که نتیجه را نشان می دهد اسم ستون ها که فارسی بود به انگلیسی بر می گردد!!!میخوستم بدانم ایا راه حلی وجود داره برای رفع این مشکل؟؟
سپاس

sagggad
جمعه 04 بهمن 1392, 22:25 عصر
کدی که برای جستجو استفاده کردید را قرار دهید

eletcomp
جمعه 04 بهمن 1392, 22:28 عصر
بفرمایید دوستان عزیز

sagggad
جمعه 04 بهمن 1392, 22:30 عصر
پس بانکش کو؟

eletcomp
جمعه 04 بهمن 1392, 22:39 عصر
با عرض پوزش:من از نسخه ی کامل sql server2008 استفاده می کنم!! و حواسم نبود بانک کجا ذخیره میشه والان دنبالش می گردم!! الان نمی دانم بانک کجا ذخیره شده!!:متعجب:

sagggad
جمعه 04 بهمن 1392, 22:40 عصر
تا هزار روز دیگه هم بگردی نمیتونی پیدا کنی!!!:لبخندساده:
میرن تو این آدرس:
C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA

eletcomp
جمعه 04 بهمن 1392, 22:51 عصر
ممنون دوست عزیز:بوس:
بفرما

http://uplod.ir/hd86ausab122/database.rar.htm

http://www.uplooder.net/cgi-bin/dl.cgi?key=41aa706dd32840a15a5fdbd5366ac3c5

sagggad
جمعه 04 بهمن 1392, 23:08 عصر
به نظر من جستجو رو در گریدویو انجام بده
اگه میخوای برات درست کنم بفرستم

eletcomp
جمعه 04 بهمن 1392, 23:11 عصر
ممنون دوست عزیز:من زیاد سر در نمی اورم:لطف کنی درستش کنی خیلی ممنون ات می شوم:فقط درست اش کردی برام ضمیمه کن:لبخندساده:
سپاس

eletcomp
جمعه 04 بهمن 1392, 23:43 عصر
دوستان هرکس میتونه لطف کنه کمک کنه!!
سپاس

sagggad
شنبه 05 بهمن 1392, 00:07 صبح
دوست عزیز این رو برات درست کردم
فقط بر مبنای نام جستجو انجام میشه:
115880

eletcomp
شنبه 05 بهمن 1392, 10:24 صبح
ممنون دوست عزیز: ولی جستجویی که انجام نمیده!!! بر اساس نام!! شما فقط 4 خط کد اضافه کردی!! قضیه اش چطوری هست!!


for (var i = 0; i <= dataGridView1.RowCount - 1; i++)
{
if (txtid.Text == (string) (dataGridView1.Rows[i].Cells[2].Value))

}

sagggad
شنبه 05 بهمن 1392, 10:50 صبح
ممنون دوست عزیز: ولی جستجویی که انجام نمیده!!! بر اساس نام!! شما فقط 4 خط کد اضافه کردی!! قضیه اش چطوری هست!!


for (var i = 0; i <= dataGridView1.RowCount - 1; i++)
{
if (txtid.Text == (string) (dataGridView1.Rows[i].Cells[2].Value))

}



ببین شما میخوای اگر پیدا شد چه کار کنه؟
نشون بده؟

sagggad
شنبه 05 بهمن 1392, 10:52 صبح
برای این کار داخل دستورات شرط IF این کدهارو کپی کن:

dataGridView1.CurrentCell = dataGridView1.Rows[i].Cells[2];
dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.CurrentRow.Index;
break;

eletcomp
شنبه 05 بهمن 1392, 12:07 عصر
ممنون دوست عزیز:درسته مثل حالت اول بشه: یعنی زمانی که اسم را سرچ کردی نتیجه را توی دیتاگرید نشان بده!! الان این کدها چی هستند و باید کجا نوشته بشوند؟؟ اگه درست کنی برام خیلی لطف کردی:خجالت:

ببین شما میخوای اگر پیدا شد چه کار کنه؟
نشون بده؟

برای این کار داخل دستورات شرط IF این کدهارو کپی کن:
1
2
3
dataGridView1.CurrentCell = dataGridView1.Rows[i].Cells[2];
dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.CurrentRow.Index;
break;

sagggad
شنبه 05 بهمن 1392, 13:05 عصر
بفرمایید این درست شد:
فقط یه کاری که باید میکردم این بود که در جستجو فضاهای خالی پاک بشه
برای این کار هم باید از داخل رفرنس ها microsoft.VisualBasic رو ادد کنیم
بعد هم این using رو اضافه کنیم:

using Microsoft.VisualBasic;

حالا با این کدها جستجو انجام میشه و نمایش داده میشه:

for (var i = 0; i <= dataGridView1.RowCount -1; i++)
{
if (txtid.Text != "")
{
if (Strings.Trim((string)(dataGridView1.Rows[i].Cells[2].Value)) == txtid.Text)
{
dataGridView1.CurrentCell = dataGridView1.Rows[i].Cells[2];
dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.CurrentRow.Index;
break;
}
}

}

این هم سورس برنامه حاضر و آماده:
115897

eletcomp
شنبه 05 بهمن 1392, 13:36 عصر
ممنون دوست عزیز: ولی من چند شبهه وجود داره برام!! شما مطمئن هستید که درست کد نوشتید!! چون هیچ جستجویی انجام نمیشه!!! توی رویداد txtid_TextChanged باید کد های مخصوص سرچ را نوشت!! ولی شما این کدها را نوشتید!!



private void txtid_TextChanged(object sender, EventArgs e)
{

for (var i = 0; i <= dataGridView1.RowCount -1; i++)
{
if (txtid.Text != "")
{
if (Strings.Trim((string)(dataGridView1.Rows[i].Cells[2].Value)) == txtid.Text)
{
dataGridView1.CurrentCell = dataGridView1.Rows[i].Cells[2];
dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.CurrentRow.Index;
break;
}
}

}

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

sagggad
شنبه 05 بهمن 1392, 14:20 عصر
بله
این کدها جستجو رو در گریدویو انجام میدن و نه در بانک
برمبنای نام

eletcomp
شنبه 05 بهمن 1392, 14:52 عصر
بله
این کدها جستجو رو در گریدویو انجام میدن و نه در بانک
برمبنای نام

خب: من الان خروجی را از کجا باید ببینم!! نتیجه را روی گرید ویو نشان نمی دهد که!!

sagggad
شنبه 05 بهمن 1392, 14:58 عصر
چرا دیگه اگر پیدا کنه اون رو هایلایت میکنه

eletcomp
شنبه 05 بهمن 1392, 15:15 عصر
برای من اصلا چیزی را نشان نمیدهد!!

sagggad
شنبه 05 بهمن 1392, 15:30 عصر
آها ببخشید
من تو رویداد TextChange مال txtid نوشتم
یعنی باید تو txtid نام رو بنویسی تا جستجو کنه
اگر هم میخوای همون کدها رو داخل روبداد TextChange مال Txtname بذار

eletcomp
شنبه 05 بهمن 1392, 15:58 عصر
من به شما خیلی ارادت دارم دوست عزیز ولی من نمیدونم چرا کاربران توی این انجمن به جای اینکه راه ساده را جلوی پای ادم بزارند ادم را می پیچونند :گیج:
این کدهایی را شما نوشتید من عاقبت نفهمیدم چه کار می کنه ولی در هر صورت عاقبت فهمیدم مشکل اش کجاست: اصلا به این کدهایی که نوشتید احتیاج نبود باید نام ستونها به صورت دستی فارسی می شدند!! درستش کردم!:چشمک:

hashtgerd2
شنبه 05 بهمن 1392, 16:51 عصر
من به شما خیلی ارادت دارم دوست عزیز ولی من نمیدونم چرا کاربران توی این انجمن به جای اینکه راه ساده را جلوی پای ادم بزارند ادم را می پیچونند :گیج:
این کدهایی را شما نوشتید من عاقبت نفهمیدم چه کار می کنه ولی در هر صورت عاقبت فهمیدم مشکل اش کجاست: اصلا به این کدهایی که نوشتید احتیاج نبود باید نام ستونها به صورت دستی فارسی می شدند!! درستش کردم!:چشمک:

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

s cmd.CommandText = "SELECT jeen_ID AS [کد کالا], name AS [نام کالا], color AS [رنگ کالا], size AS [سایز کالا], g_type as [نوع کالا], g_producter as [تولیدکننده], price AS [قیمت خرید], priceforoosh AS [قیمت فروش] from jeens ORDER BY jeen_ID DESC";
اینجوری وقتی دیتاگرید ویو رو پر میکنی نام ستون ها رو فارسی برات مینویسه مثلا به جای انگلیسی نیم می زنه نام کالا و الی اخر

eletcomp
شنبه 05 بهمن 1392, 16:57 عصر
درسته دوست عزیز ولی این راه زیاد جالب نیست !! ادم قاطی می کنه!!(ولی جواب میده) باید نام ستونها را دستی به صورت فارسی نوشت!!مثل کد پایین!! دقیق تر هست!


private void txtsearch_TextChanged(object sender, EventArgs e)
{
DataSet ds = new DataSet();
SqlDataAdapter adp = new SqlDataAdapter();
adp.SelectCommand = new SqlCommand();
adp.SelectCommand.Connection = con;
adp.SelectCommand.CommandText = "select * from student where studid like @N";
adp.SelectCommand.Parameters.AddWithValue("@N", txtsearch.Text + "%");
adp.Fill(ds, "t1");
dataGridView1.DataSource = ds;
dataGridView1.DataMember = "t1";
dataGridView1.Columns[0].HeaderText = "شماره منحصر به فرد";
dataGridView1.Columns[1].HeaderText = "شماره دانشجویی";
dataGridView1.Columns[2].HeaderText = "نام";
dataGridView1.Columns[3].HeaderText = "نام خانوادگی";
dataGridView1.Columns[4].HeaderText = "شهر";
}

hashtgerd2
شنبه 05 بهمن 1392, 17:36 عصر
اگه می خوای دیتاگرید ویو رو فیلتر کنی
خب راه راحت تری هم هست تا اینکه اینجوری بخوای هی سلکت کنی دیتاسورس رو پر کنی دیاگرید رو بایند کنی
من از این کد استفاده میکنم
یه بایند سورس تعریف کن
BindingSource bs = new BindingSource();
بعد وقتی دفعه اول که اداپتور رو پر یکنی
این بایند سورس رو باهاش پر کن
da.Fill(dt);
con.Close();
bs.DataSource = dt;

بعد دیتاگرید ویو رو به این بایند سورس بایند کن
dataGridView1.DataSource = bs;
بعد خواستی فیلتر کنی
تو رویداد تکس چینج این کد رو بنویس
bs.Filter = string.Format("["+cmbFilter.Text+"] LIKE '%{0}%'", txt_edit.Text);

eletcomp
شنبه 05 بهمن 1392, 17:53 عصر
ممنون ولی من دنبال راه حل های پیچیده نیستم!! این کدها ادم را گیج می کنند!

sagggad
شنبه 05 بهمن 1392, 20:05 عصر
ممنون ولی من دنبال راه حل های پیچیده نیستم!! این کدها ادم را گیج می کنند!
دوست عزیز سرچ کردن داخل بانک و گریدویو کدهاش خیلی ساده نیست

khokhan
شنبه 05 بهمن 1392, 22:00 عصر
ممنون ولی من دنبال راه حل های پیچیده نیستم!! این کدها ادم را گیج می کنند!
.................................................. ..................

hosseinbarnamenevis
شنبه 05 بهمن 1392, 23:21 عصر
نیاز به این همه دردسر نبود که!
شما کدی که نوشتین که باعث تغییر نام اون ستون ها میشه بزارید داخل یه تابع!
بعدشم اخر سرچنون فراخونیش کنید همین!