PDA

View Full Version : سوال: باز هم DataGridView و باز هم DataGridView



tto_baran
دوشنبه 24 فروردین 1388, 23:41 عصر
با سلام خدمت سروران گرامي
دوستان خواهشمندم به اين سه سوال توجه فرموده و در صورت امكان جواب دهيد .

ü چگونه مي توانم در يك DataGridViewفقط ركورد هايي از يك جدول را نشان دهم كه در يكي از فيلدها داراي مقدار مشخصي باشد . يعني باصطلاح نحوه نمايش DataGridView مشروط باشد .

به فرض اين كه توانستم ، در يك DataGridViewفقط ركورد هايي از يك جدول را نشان دهم كه در يكي از فيلدها داراي مقدار مشخصي باشد . حالا سوال اين است اگر من مقدار تعدادي از سلول ها را تغييـــر دهم ســـــــپـس آپديت نمايم
ü اولا كد آپديت كردن آن چيست ؟

ü ثانيا آيا اين آپديت باعث نميشود جدول مورد نظر كل ركورد هاي قبلي خود را از دست داده و به همين چند ركورد كه قبلا با شرط خاص از مجموعه ركورد ها استخراج كرده بوديم تبديل شود ؟

خواهشمند م دوستان عزيز در صورت ارائه كد، آنها را كامل و حتي المقدور با تو ضيحات كافي در سطح مبتدي درج نماييد

sadeghlinux
سه شنبه 25 فروردین 1388, 01:33 صبح
من یه برنامه در این آدر س گذاشتم http://www.hotshare.net/file/127337-9213619fc3.html اگه سوالی داشتی به این Email بفرست Sadeghlinux@yahoo.com

anooshiran
سه شنبه 25 فروردین 1388, 14:48 عصر
سلام دوست عزيز

خواسته شما اصولا ربطي به خود datagridview پيدا نمي كند.

سئوال يك : شما بايد وقتي اطلاعات را از جدول select مي كنيد انتخاب خود را مشروط كنيد. البته چون نمي دانم از چه database استفاده مي كنيد نمي توانم دقيقا شما را راهنمايي كنم.

سئوال دوم : براي update كردن هم شما بايد با توانايي ها و قابليت هاي دروني ADO.NET آشنا گرديد.
سئوال سوم : با UpDate كردن ركورد هاي ديگر از بين نخواهد رفت.

tto_baran
سه شنبه 25 فروردین 1388, 20:51 عصر
ضمن تشكر از كليه دوستاني كه سوال را مشاهده كرده اند و با عرض ارادت خاص به دوستاني كه قبول زحمت كرده و پاسخ داده اند

sadeghlinux عزيز متاسفانه فايل دچار يك مشكل داخلي است و درست داونلود نميشه لطفا دوباره :تشویق::تشویق:

anooshiran گرامي از شما انتظار راهنمايي دارم . لطفا راهنمايي كن database من sql ميباشد :تشویق::تشویق:

tto_baran
پنج شنبه 27 فروردین 1388, 01:00 صبح
دوستان عزيز واقعا به اين كد ها نياز دارم خواهش ميكنم راهنمايي كنيد .

anooshiran
پنج شنبه 27 فروردین 1388, 14:09 عصر
سلام دوست عزيز

فرض مي كنيم جدولي داري با 4 فيلد به نامهاي Fild0 و Fild1 و Fild2 و Fild3

Fild0 همان primeryKey جدول توست كه عددي است يكتا و غير قابل تكرار




Dim sqlCon As New SqlClient.SqlConnection("Integrated Security=SSPI;Data Source=.")
Dim sqlDtAdp As New Data.SqlClient.SqlDataAdapter("", sqlCon)
Dim sqlCom As New SqlClient.SqlCommand("", sqlCon)
Dim dSet As New DataSet
With sqlDtAdp
.SelectCommand.CommandText = "SELECT * FROM DataBaseName.dbo.TableName WHERE Fild1=>100 " & _
" OR Fild2='Ali' AND Fild3<>'Tehran' ORDER BY Fild2 "
If dSet.Tables.Contains("TableName") Then dSet.Tables.Remove("TableName")
.Fill(dSet, "TableName")
End With
DataGridView1.DataSource = dSet.Tables("TableName")



در اين كد من هر سه فيلد تو را مشروط كرده ام يعني خواسته ام تمام ركوردهايي كه fild1 آن بزگتر يا مساوي 100 است يا fild2 آن ali است و fild3 آن تهران نيست انتخاب شده و در يك table در dataset قرار گيرد.

آنگاه table را به ddatagridview متصل نموده ام.


و اما براي Update





For i As Int16 = 0 To DataGridView1.Rows.Count - 1
With sqlCom
.CommandText = "UPDATE SET DataBaseName.dbo.TableName Fild1=@Fild1,Fild2=@Fild2,Fild3=@Fild3," & _
" WHERE Fild0= " & DataGridView1.Item("Fild0", i).Value
.Parameters.Clear()
.Parameters.AddWithValue("@Fild1", DataGridView1.Item("Fild1", i).Value)
.Parameters.AddWithValue("@Fild2", DataGridView1.Item("Fild2", i).Value)
.Parameters.AddWithValue("@Fild3", DataGridView1.Item("Fild3", i).Value)

.ExecuteNonQuery()
End With
Next



در يك حلقه به تعداد سطر هاي datagridview كد هاي فوق را قرار داده ام.
فقط توجه كن به WHERE
براي آپديت كردن يك ركورد حتما بايد يكتايي آن مشخص شود. از آنجايي كه datagridview داراي ستوني به نام Fild0 مي باشد (حال ميتوان آن را نمايش داد يا نداد) كه اين فيلد يگانه است بنابر اين من چك كرده ام كه در هر مرحله فقط ركوردي update شود كه مقدار Fild0 آن ركورد براير DataGridView1.Item("Fild0", i).Value باشد.

باز هم اگر منوجه نشدي بيشتر توضيح خواهم داد

ali_md110
پنج شنبه 27 فروردین 1388, 21:20 عصر
http://barnamenevis.org/forum/showthread.php?t=155106
مثال بالا یک جدول رو لود کرده و قابل ویرایش یا حذف و ویرایش هست
فقط باید شرطی رو توی دستور select بزاری تا رکوردهای دلخواهت لود شده اونوقت هر کاری خواستی باهاش بکن