PDA

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



ma.andishe
چهارشنبه 18 آذر 1388, 15:44 عصر
با سلام .داخل فرم برنامه ام یک dataview هست که با row filter میتوان اون را فیلتر کرد .اما بعد از اعمال ویرایش که با (datagride .currentrow.index) انجام میشه .ویرایش روی سطر جاری datagride اعمال میشه.چکار میتونم بکنم که بعد از عمل فیلتر و سپس ویرایش ; ویرایش دقیقا روی همان رکورد فیلتر شده اعمال شود؟

نهایت تشکر از کسی که بتونه کمکی بکنه

viper2009
چهارشنبه 18 آذر 1388, 19:40 عصر
با سلام .داخل فرم برنامه ام یک dataview هست که با row filter میتوان اون را فیلتر کرد .اما بعد از اعمال ویرایش که با (datagride .currentrow.index) انجام میشه .ویرایش روی سطر جاری datagride اعمال میشه.چکار میتونم بکنم که بعد از عمل فیلتر و سپس ویرایش ; ویرایش دقیقا روی همان رکورد فیلتر شده اعمال شود؟

نهایت تشکر از کسی که بتونه کمکی بکنه

بنظر من این کارت کمی کار رو مشکل کرده

شما می بایست در هنگام فیلتر همان ID فیلتر بشه یعنی اگر ID مساوی 6 هست در موقع فیلتر هم 6 بشه که با فیلتر کردن توسط گرید شماره به یک تبدیل می شه پس موقع ویرایش سطر یک از دیتا بیست به اشتباه ویرایش میشه

واسه این کار بهتره فیلتر رو با استفاده از SQL انجام بدی همراه با ID ان

ma.andishe
پنج شنبه 19 آذر 1388, 10:45 صبح
اگه میشه به صورت کد 1 مثال برام بزن

viper2009
پنج شنبه 19 آذر 1388, 13:15 عصر
اگر از Unique برای ID برای غیر همانند سازی شماره ها استفاده کرده باشی مشکلی پیش نمی یاد در فیلتر هم همون ID نشان داده خواهد شد

پس با این کد می تونی ویرایش کنی





ConM = New SqlConnection(TxtCon)


ConM.Open()

Dim SQLCOM As New SqlCommand("UPDATE table SET Nam='" & txtNam.Text &
"',Last='" & txtLast.Text & "' WHERE ID=" & txtID.Text & "", ConM)

SQLCOM.ExecuteNonQuery()

ConM.Close()


فقط از قبل در رویداد مربوط به Click دیتا گرید می بایست این کد را هم جهت بایند کردن اطلاعات درون TEXTBOX ها استفاده کنی تا اطلاعات مربوط به هر فیلد در هر سطر در این تکست باکس ها جهت ویرایش نمایش داده شود به این صورت




txtID.Text = DGV.CurrentRow.Cells("ID").Value()
txtNam.Text = DGV.CurrentRow.Cells("Nam").Value()
txtLast.Text = DGV.CurrentRow.Cells("Last").Value()