سلام خدمت اساتید:
بنده یه مشکلی در ارتباط با دیتاگرید ویو دارم وآن این است که زمانی دکمه ثبت را میزنم فقط رکوردهای ثبت شده جدید را در دیتاگرید نمایش بده و مابقی که در جدول هست نمایش ندهد.
سلام خدمت اساتید:
بنده یه مشکلی در ارتباط با دیتاگرید ویو دارم وآن این است که زمانی دکمه ثبت را میزنم فقط رکوردهای ثبت شده جدید را در دیتاگرید نمایش بده و مابقی که در جدول هست نمایش ندهد.
خب شما اولا به جایی نباید بایند کنی الا زمان لود شدن فرم.
حالا دیگه موقعی که ثبت زده میشه اون اطلاعات رو بصورت datarow تو حافظه نگه دار و درون گرید بریز
میشه لطف کنید بگید چطوری این کار را انجام دهم. ممنون میشم
خب از اول گرید باید خالی باشه وقتی ثبت کردی یه دستور
select top(1) * from tblname order by code desc
که tblname اسم جدولته و code فیلدی است که اتوماتیک زیاد میشه. اینجوری فقط آخرین رکورد ثبت شده رو بهت میده. حالا اینو به گرید بایند کن
داخل جدولم عدد نیست بلکه رشته می باشد username
خب پس مجبوری از textbox ها به گرید بریزه مثل خوندن از سلول گریده. بلدی؟
من تکست باکس ندارم از طریق کد نویسی می فرستم
سلام.
اگر قبلا رکورد داخل گرید دارید، بهتره یک فیلد چک باکس به گرید اضافه کنید که با تیک زدن هر رکورد، فقط اون رکورد (ها) ثبت بشه و رکوردهای دیگه ثبت نشن.
میتونید این کار رو انجام بدید :
درون دکمه ثبت، 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;
موفق باشید.
آخرین ویرایش به وسیله veniz2008 : جمعه 30 فروردین 1392 در 19:52 عصر