ورود

View Full Version : سوال درمورد datagridview



soheil3242
چهارشنبه 16 مرداد 1387, 10:16 صبح
با سلام
سوال من اينه كه فرض كنيم كه توي يه فرم ميخواهيم اطلاعات را به يه جدول insertكنيم اگه بعضي از فيلدهاي اين جدول از كد هايي از جدول هاي ديگر نيز به عنوان fk استفاده كنند و ما بخواهيم نتيجه اضافه شدن ركورد را به جدول مورد نظر در يك datagridview نشان دهيم آيا بايد view تعريف كنيم و بعد يك datatable براي view در dataset داشته باشيم ؟ چون مثلا نميخواهيم كاربر كد ها را جدول هاي ديگر ببيند و ميخواهيم در gridview نام متناظر آنها را ببيند . چه كار بايد بكنيم كه بعد از اضافه شدن ركورد به view در gridview نيز اين سطر اضافه شود؟

ALI TT
پنج شنبه 17 مرداد 1387, 02:21 صبح
سوال من اينه كه فرض كنيم كه توي يه فرم ميخواهيم اطلاعات را به يه جدول insertكنيم اگه بعضي از فيلدهاي اين جدول از كد هايي از جدول هاي ديگر نيز به عنوان fk استفاده كنند و ما بخواهيم نتيجه اضافه شدن ركورد را به جدول مورد نظر در يك datagridview نشان دهيم آيا بايد view تعريف كنيم و بعد يك datatable براي view در dataset داشته باشيم ؟ چون مثلا نميخواهيم كاربر كد ها را جدول هاي ديگر ببيند و ميخواهيم در gridview نام متناظر آنها را ببيند . چه كار بايد بكنيم كه بعد از اضافه شدن ركورد به view در gridview نيز اين سطر اضافه شود؟

قبول کن بد توضیح دادی ؟ یکم واضح تر .

reza6384
پنج شنبه 17 مرداد 1387, 09:19 صبح
علی جان من با شما موافقم، توضیحشون زیاد واضح نبود، اما من فکر می کنم متوجه شدم.
شما مثلا یک جدول کالا دارید که توی اون یک FK برای تولید کننده هست، کد تولید کننده 3 هست و اسم تولید کننده 3 "شرکت X". شما می خواهید که کاربر 3 رو نبینه و شرکت X رو ببینه. اینکار رو می تونید انجام بدید :



Sub BindDataGrid()
Dim Query AsString
Query = "Select M.ID,M.Name,M.Stock,P.Name From Merchandise As M,Producers As P" _
& " Where M.ProducerID = P.ID "
Dim Conn AsNew SqlClient.SqlConnection(".....")
Conn.Open()
Dim SDA AsNew SqlClient.SqlDataAdapter(Query, Conn)
Dim DS AsNew DataSet
Dim Result AsNew DataTable("Result")
DS.Tables.Add("Result")
SDA.Fill(DS, "Result")
Me.DataGridView1.DataSource = DS
Me.DataGridView1.DataMember = "Result"
EndSub


PrivateSub BtnInsert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnInsert.Click
Dim Conn AsNew SqlClient.SqlConnection("....")
Conn.Open()
Dim CMD AsNew SqlClient.SqlCommand("Insert into Merchandise(.....", Conn)
CMD.ExecuteNonQuery()
BindDataGrid()
EndSub


یعنی بعد از اینکه رکوردت رو درج کردی دوباره DataGrid رو Bind کنی. البته سرعت اینکاری که من گفتم از ایجاد یک View پایین تره

ALI TT
پنج شنبه 17 مرداد 1387, 18:17 عصر
یعنی می خواهید کاربر ستون 3 رو نبینه ؟