PDA

View Full Version : سوال: نمایش اطلاعات در دیتاگریدویو



farhan1
جمعه 30 فروردین 1392, 17:41 عصر
سلام خدمت اساتید:
بنده یه مشکلی در ارتباط با دیتاگرید ویو دارم وآن این است که زمانی دکمه ثبت را میزنم فقط رکوردهای ثبت شده جدید را در دیتاگرید نمایش بده و مابقی که در جدول هست نمایش ندهد.

parvizwpf
جمعه 30 فروردین 1392, 18:10 عصر
خب شما اولا به جایی نباید بایند کنی الا زمان لود شدن فرم.
حالا دیگه موقعی که ثبت زده میشه اون اطلاعات رو بصورت datarow تو حافظه نگه دار و درون گرید بریز

farhan1
جمعه 30 فروردین 1392, 18:16 عصر
میشه لطف کنید بگید چطوری این کار را انجام دهم. ممنون میشم

kebriya
جمعه 30 فروردین 1392, 18:24 عصر
خب از اول گرید باید خالی باشه وقتی ثبت کردی یه دستور

select top(1) * from tblname order by code desc

که tblname اسم جدولته و code فیلدی است که اتوماتیک زیاد میشه. اینجوری فقط آخرین رکورد ثبت شده رو بهت میده. حالا اینو به گرید بایند کن

farhan1
جمعه 30 فروردین 1392, 18:27 عصر
داخل جدولم عدد نیست بلکه رشته می باشد username

kebriya
جمعه 30 فروردین 1392, 18:41 عصر
خب پس مجبوری از textbox ها به گرید بریزه مثل خوندن از سلول گریده. بلدی؟

farhan1
جمعه 30 فروردین 1392, 18:59 عصر
من تکست باکس ندارم از طریق کد نویسی می فرستم

veniz2008
جمعه 30 فروردین 1392, 19:30 عصر
سلام.
اگر قبلا رکورد داخل گرید دارید، بهتره یک فیلد چک باکس به گرید اضافه کنید که با تیک زدن هر رکورد، فقط اون رکورد (ها) ثبت بشه و رکوردهای دیگه ثبت نشن.
میتونید این کار رو انجام بدید :
درون دکمه ثبت، id رکود (های) انتخاب شده رو که ثبت شدنشون رو دارید، بردارید و درون یک متغیر رشته ای نگهداری کنید. بعد از عملیات ثبت درون select خودتون،دستور IN رو استفاده کنید و فقط اون رکوردها رو نشون بدید. (منظور از cells[1 همون سلولی هست که id رکوردها رو داره و منظور از [4] cells هم همون فیلد چک باکسی هست که گفتم اضافه کنید).

for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
if(Convert.ToBoolean(dataGridView1.Rows[i].Cells[4].Value) == true)
{
s = s + "'" + dataGridView1.Rows[i].Cells[1].Value + "'" +",";
}
}
s = s.Remove(s.Length - 1, 1);
SqlConnection con = new SqlConnection("Data source =(local);initial catalog = testgrid;integrated security = true");
SqlDataAdapter da = new SqlDataAdapter("select * from TblUser where id IN (" + s + ")", con);
DataTable dt = new DataTable();
da.Fill(dt);
dataGridView1.DataSource = dt;
موفق باشید.