PDA

View Full Version : ویرایش و حذفو اضفه بر روی DataGridview



Ship Storm
جمعه 13 بهمن 1391, 13:14 عصر
سلام دوستان
چطور میتونم اطلاعات درون Datagridview رو ویرایش و یا حذف کنم ؟
اضافه کردن رو کدش رو نوشتم خیلی خوب جواب میده ولی برای ویرایش یک سط و یا حذف یک سط نمیدونم چطور باید عمل کنم
ممنون میشم راهنمایی کنید
این هم نمونه ای از عکس برنامه من :
99384
توی این دکمه های next و privius چه کدی باید بزنم که به سطر بعدی دسترسی پیدا کنم ؟
این کدی هست که تا اینجا نوشتم :
این کد برای دکمه CreatUser هست :



Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim con As New SqlConnection()
con.ConnectionString = "server=HAMED-PC;database=Hospital;Integrated security=yes"
con.Open()
Dim com As New SqlCommand()
com.Connection = con
Dim sql As String

Dim rnd As New Random
Dim temp As String
temp = rnd.Next(1, 100).ToString()
File.Copy(ImgPath, My.Application.Info.DirectoryPath & "\" & temp & ".JPG")

Dim stream As New FileStream(My.Application.Info.DirectoryPath & "\" & temp & ".JPG", FileMode.Open)

Dim reader As New BinaryReader(stream)
Dim imgByte() As Byte
imgByte = reader.ReadBytes(stream.Length)

Dim s As String
If (RadioButton1.Checked = True) Then
s = 0
ElseIf (RadioButton2.Checked = True) Then
s = 1
End If

sql = "INSERT INTO Login(UserName,Password,Sex,picture) VALUES ('{0}','{1}','{2}',@picture)"
sql = String.Format(sql, TextBox1.Text, TextBox2.Text, s)
com.Parameters.Add("@picture", SqlDbType.VarBinary).Value = imgByte

com.CommandText = sql
com.ExecuteNonQuery()
MsgBox("SAVED")
com.CommandText = "select * From Login"
Dim da As New SqlDataAdapter(com)
Dim dt As New DataTable
da.Fill(dt)
DataGridView1.DataSource = dt
con.Close()

Dim Cnn As New SqlClient.SqlConnection
Dim Comm As New SqlClient.SqlCommand
Cnn.ConnectionString = "Server=Hamed-PC;Database=Hospital;Trusted_Connection=True;"
Cnn.Open()
Comm.Connection = Cnn
Comm.CommandType = CommandType.Text
MsgBox(ImgPath)

Dim strSQL As String
strSQL = "INSERT INTO Login(picture) VALUES ({0})"
strSQL = String.Format(strSQL, imgByte)
End Sub


این کد هم تو Form_Load برنامه نوشتم که اطلاعات رو از Sql میخونه و میریزه تو Gridview :



Me.LoginTableAdapter1.Fill(Me.HospitalDataSet2.Log in)
Dim con As New SqlConnection()
con.ConnectionString = "server=HAMED-PC;database=Hospital;Integrated security=yes"
con.Open()
Dim com As New SqlCommand()
com.Connection = con
com.CommandText = "Select * From Login"
Dim da As New SqlDataAdapter(com)
Dim dt As New DataTable
da.Fill(dt)
DataGridView1.DataSource = dt

tolid123456789
دوشنبه 07 اسفند 1391, 12:12 عصر
سلام دوست عزيز
براي ويرايش در ديتا گريد ابتدا بايد با انتخاب بر روي سطر مورد نظر آيتم هاي اون سطر رو در تكس باكس ها بياريد( براي راحتي كار بايد در بانكتون يك كليد تعريف كنيد كه شماره اتوماتيك بگيره)
بعد با تغيير اطلاعات در تكس باكس بايد Update كنيد
فرض كنيد يك جدول با نام Tabel1 داريم كه ستون هاي زير رو داره(SQL)
ID Fname Lname
فيلد ID از نوع Decimal و اتوماتيك شماره اندازه
حالا در ويژوال يك ديتا گريد ،دو تكس باكس و سه باتون اضافه كنيد و اسمشون رو مطابق مطلب زير انتخاب كنيد
ديتا گريد DGV
تكست باكس 1 Fname_txt
تكست باكس 2 Lname_txt
باتون 1 Insert_btn
باتون 2 Update_btn
باتون 3 Delete_btn
حالا براي لود فرمتون كد زير رو بنويسيد
Dim cmd As New SqlCommand
cmd.Connection = con
cmd.CommandText = "select * from Tabel1 "
Dim da As New SqlDataAdapter(cmd)
Dim dt As New DataTable
If con.State = ConnectionState.Closed Then con.Open()
da.Fill(dt)
DGV.DataSource = dt
con.Close()

حالا براي رويداد Cell enter مربوط به ديتا گريدتون كد زير رو بنويسيد

Fname_txt.text=DGV.CurrentRow.Cells(1).value.tostr ing()
Lname_txt.text=DGV.CurrentRow.Cells(2).value.tostr ing()


با كد بالا شما انتخاب هر سطر نام و نام خانوادگي رو در تكس باكس ها مشاهده خواهيد كرد

حالا كد زير رو براي ويرايش اطلاعاتي كه در تكست باكس ها مشاهده مي كنيد وارد كنيد



Dim cmd As New SqlCommand
cmd.Connection = con
cmd.CommandText = "update Tabel1 set Fname=@Fname, LName=@LName," &
" WHERE ID='" & DGV.CurrentRow.Cells(0).Value & "'"
cmd.Parameters.AddWithValue("@Fname", Fname_txt.Text)
cmd.Parameters.AddWithValue("@LName", LName_txt.Text)

If con.State = ConnectionState.Closed Then con.Open()
Try
cmd.ExecuteNonQuery()
Catch ex As Exception
MsgBox(Err.Description)
End Try
con.Close()



حالا براي دكمه حذف كد زير رو مي نويسيم





Dim cmd As New SqlCommand
cmd.Connection = con
cmd.CommandText = "delete from Tabel1 where ID='" & DGV.CurrentRow.Cells(0).Value & "'"
If con.State = ConnectionState.Closed Then con.Open()
cmd.ExecuteNonQuery()
MsgBox("با موفقيت حذف شد")
con.Close()




بعد از اعمال تغيير و حذف كه توسط دكمه هاي ويرايش و حذف ايجاد مي شود بايد كد زير رو بنويسيد تا اطلاعات بروز شده در ديتا گريد مشاهده شود

Form1.Load(sender,e)




موفق باشيد

بنده امروز وقت چنداني براي نوشتن توضيحات بيشتر نداشتم - شرمنده


اگر سئوالي بود در خدمتيم