PDA

View Full Version : ویرایش رکورد



amin_paj
جمعه 12 مهر 1392, 02:31 صبح
سلام دوستان ،از این کد برای افزودن رکورد استفاده میکنم حالا برای ویرایش رکورد چکار کنم ، ؟ ممنون اگه راهنمایی کنید .
ds.Clear()
s1 = "data Source=.\sqlexpress;Initial Catalog=chapter1;Integrated Security=True;Pooling=False"
con = New SqlConnection(s1)
con.Open()
s2 = "select * from employee where sh=" + txtsh.Text
da = New SqlDataAdapter(s2, con)
ds.Clear()
da.Fill(ds, "employee")
If ds.Tables("employee").Rows.Count <> 0 Then
MsgBox("شماره شناسنامه تکراری است")
Exit Sub
End If
'/////////////////new record to RAM (dataset)////////////////////////////////////
dr = ds.Tables("employee").NewRow
dr.Item("name") = txtname.Text
dr.Item("family") = txtfam.Text
dr.Item("sh") = Val(txtsh.Text)
dr.Item("address") = txtadd.Text
ds.Tables("employee").Rows.Add(dr)
'////////////////new record to DB /////////////////////////////
cb = New SqlCommandBuilder(da)
da = cb.DataAdapter
da.Update(ds, "employee")
MsgBox("اطلاعات رکورد جدید ثبت شد")

Fery666
جمعه 12 مهر 1392, 22:26 عصر
با این دستو میتونین کار Edit رو انجام بدین :




con.Open()

StrCom = New OleDbCommand("update DataBaseName set Field1='" & t2.Text & _
"',Field2='" & t1.Text & _
"',Field1='" & t3.Text & _
"' where IDm Like'" & stredit & "'", con)

StrCom.ExecuteReader()

MsgBox("ویرایش انجام شد", MsgBoxStyle.Information, "ویرایش")
con.Close()



باید ی کد منحصر به فرد توی دیتابیست داشته باشی که از طریق اون عوض کنی .
Field1 ...Filder3 فیلد های توی دیتابیستون هستش که می خواین ویرایش کنی .
DataBaseName هم اسم دیتابیس شما هستش .

mehdi.mousavi
شنبه 13 مهر 1392, 07:58 صبح
سلام.

@ (http://barnamenevis.org/member.php?55329-Fery666)Fery666: (http://barnamenevis.org/member.php?55329-Fery666)
کدی که در پاسخ به سوال نوشته اید پر از ایراده:


این کد در برابر حملات SQL Injection آسیب پذیره.
برای از بین بردن Instance از اشیایی که IDisposable رو پیاده سازی کرده اند، باید از Using استفاده بشه (http://msdn.microsoft.com/en-us/library/htd05whh.aspx).
وقتی SQL Statement شما قرار نیست رکوردی به Client برگردونه، دیگه نیازی به اجرای Command با استفاده از ExecuteReader نیست. اینجا باید از ExecuteNonQuery (http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.executenonquery.a spx?cs-save-lang=1&cs-lang=vb#code-snippet-1) استفاده بشه.

در نهایت، روش صحیح تعریف Stored Procedure ای به منظور Update کردن اون رکورد هستش. اگر هم مایل به انجام این کار نیستید، حداقل از Parametric Command ها استفاده کنید.

موفق باشید.

amin_paj
شنبه 13 مهر 1392, 10:45 صبح
با این دستو میتونین کار Edit رو انجام بدین :




con.Open()

StrCom = New OleDbCommand("update DataBaseName set Field1='" & t2.Text & _
"',Field2='" & t1.Text & _
"',Field1='" & t3.Text & _
"' where IDm Like'" & stredit & "'", con)

StrCom.ExecuteReader()

MsgBox("ویرایش انجام شد", MsgBoxStyle.Information, "ویرایش")
con.Close()



باید ی کد منحصر به فرد توی دیتابیست داشته باشی که از طریق اون عوض کنی .
Field1 ...Filder3 فیلد های توی دیتابیستون هستش که می خواین ویرایش کنی .
DataBaseName هم اسم دیتابیس شما هستش .

نشد که بشه تو کد نوشتم دیتابیسم sql هست excutereader نداریم که . بازم ممنون