ورود

View Full Version : سوال: مشکل با دستور Update



JaVa
سه شنبه 13 تیر 1391, 15:13 عصر
خسته نباشید...

من دستور آپدیت کردن رو به این شکل نوشتم:
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
cmd.CommandText = "Update set Name=@name,Family=@Family,Phone=@Phone Where ID=@ID"
cmd.Parameters.Clear()

cmd.Parameters.Add("@Name", SqlDbType.NVarChar).Value = Val(TextBox1.Text)
cmd.Parameters.Add("@Family", SqlDbType.NVarChar).Value = Val(TextBox2.Text)
cmd.Parameters.Add("@phone", SqlDbType.Char).Value = Val(TextBox3.Text)

UID(cmd)
ConnectionToDB()
DGView.DataSource = ds
DGView.DataMember = "MRG"
End Sub
End Class

خطای که میده اینه:

Incorrect syntax near the keyword 'set'.

دلیل این خطا چیه ::؟:

ebraham
سه شنبه 13 تیر 1391, 15:15 عصر
سلام این دستور اپدیت نیست بلکه دستور ادد کردن تو دیتابیسه اگه دستور اپدیت رو میخوای بگو برات بنویسم

ebraham
سه شنبه 13 تیر 1391, 15:18 عصر
خطا به خاطر اینه که این دستور برای ادد کردنه و باید توی دستور به جای update set بنویسی نام جدول insert into

JaVa
سه شنبه 13 تیر 1391, 15:40 عصر
سلام این دستور اپدیت نیست بلکه دستور ادد کردن تو دیتابیسه اگه دستور اپدیت رو میخوای بگو برات بنویسم

توی این پست آموزشی گفته که برای Update کردن اینکارو بکن.
http://barnamenevis.org/showthread.php?133060-ADO.NET-%D8%AF%D8%B1-%D8%AF%D8%A7%D8%AA-%D9%86%D8%AA&p=642240&viewfull=1#post642240

خودتون یه نگاهی بهش بندازید.

با تشکر./

ROSTAM2
سه شنبه 13 تیر 1391, 15:45 عصر
اين رو ::



cmd.CommandText = "Update set Name=@name,Family=@Family,Phone=@Phone Where ID=@ID"


به اين تغيير بديد ( نام جدول رو ذكر نكرديد)


cmd.CommandText = "Update MEAO set Name=@name,Family=@Family,Phone=@Phone Where ID=@ID"


در ضمن واسه شرط Where ID=@ID دستوري ننوشتيد اينطور مي شه كه Query بنده خدا در مي مونه به كي اطلاعات جديد رو ارائه بده

(من)

JaVa
سه شنبه 13 تیر 1391, 15:59 عصر
هدف از گذاشتن این پست اینه که اگه یه موقع کسی دچار همین مشکل شد متوجه اشتباهش بشه:
شکل صحیح Update کردن در ado.net



Private Sub DGView_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles DGView.Click
'بدست آوردن اندیس رکورد مورد نظر
Try
index = DGView.CurrentRow.Cells(0).Value
Catch ex As Exception
MsgBox(". لطفا بدرستی گزینه مورد نظر خود را انتخاب کنید ", MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "خطا")
End Try

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
cmd.CommandText = "Update table1 set Name=@name,Family=@Family,Phone=@Phone Where ID=" & index
cmd.Parameters.Clear()

cmd.Parameters.Add("@Name", SqlDbType.NVarChar).Value = TextBox1.Text
cmd.Parameters.Add("@Family", SqlDbType.NVarChar).Value = TextBox2.Text
cmd.Parameters.Add("@phone", SqlDbType.Char).Value = TextBox3.Text

UID(cmd)
ConnectionToDB()
DGView.DataSource = ds
DGView.DataMember = "MRG"
End Sub






سلام این دستور اپدیت نیست بلکه دستور ادد کردن تو دیتابیسه اگه دستور اپدیت رو میخوای بگو برات بنویسم
میشه شما شکل درست آپدیت کردن رو بگید ببینیم چه شکلیه؟؟؟؟؟

با تشکر./

ebraham
سه شنبه 13 تیر 1391, 16:11 عصر
دستور آپدیت کردن :
sqlconnection.open
Dim cmd As new sqlcomman
cmd=New sqlcommand("update tablename set field='" & TextBox1.txt & "'",sqlconnection)
cmd.ExecuteNonquery
sqlconnection.close

ebraham
سه شنبه 13 تیر 1391, 16:13 عصر
میتونی مقداری رو که میخای جایگزین کنی و آپدیت بشه را بریزی تو یه متغیر و به جای TextBox.Txt بزاریش.

ebraham
سه شنبه 13 تیر 1391, 16:23 عصر
البته دستور شما هم باید درست باشه ولی با یکم تغییرات که دوستمون ROSTAM2 براتون نوشتن . این روش آپدیت کردن به شیوه پارامتر هستش . ولی خب روش من کوتاهتره تو کدنویسی .

SilverGold
جمعه 23 تیر 1391, 16:02 عصر
سلام من با اسکیوال سرور 2008 خیلی راحت کار می کنم ولی برای اکسپرس مجبورم این شکلی کد بنویسم
With Me.BindingSourceListkalaOnLine
Dim sqlCmdInsert As New SqlCommand
Dim ConSqlPatient As New SqlConnection
ConSqlPatient = ConKidneyGrantor
''Set connection,type,text for sqlcommand(cmdInsert)
sqlCmdInsert.Connection = ConSqlPatient
sqlCmdInsert.CommandType = CommandType.StoredProcedure
sqlCmdInsert.CommandText = "SP_Tbl_ListKala_Update"

sqlCmdInsert.Parameters.AddRange("@CommodityID", IDKala)

sqlCmdInsert.Parameters.AddWithValue("@GroupKol", .Current("GroupKol").ToString)
sqlCmdInsert.Parameters.AddWithValue("@GroupMoen", .Current("GroupMoen").ToString)
sqlCmdInsert.Parameters.AddWithValue("@GroupTafsil", .Current("GroupTafsil").ToString)
sqlCmdInsert.Parameters.AddWithValue("@CommodityName", .Current("CommodityName").ToString)
sqlCmdInsert.Parameters.AddWithValue("@CommodityUnit", .Current("CommodityUnit").ToString)
sqlCmdInsert.Parameters.AddWithValue("@CommodityCount", CType(.Current("CommodityCount"), Long))
ConSqlPatient.Open()
Try
Integer.TryParse(sqlCmdInsert.ExecuteScalar().ToSt ring(), identityValue)

Catch ex As Exception
MsgArabi.FarsiMyMsgBox("sadfasdfasdfasdf", vbOKOnly, "")
End Try
ConSqlPatient.Close()

End With
تو این روش هم من نمیدونم چطور میتونم دستور شرط رو هم که در اینجا آی کالا هست ارسال کنم

ebraham
جمعه 23 تیر 1391, 19:05 عصر
سلام SilverGold میشه منظورتون رو واضحتر بگید ؟ یعنی اون دستور آپدیتی که من نوشتم نمیشه توی اس کیو ال اکسپرس به کار برد؟