PDA

View Full Version : مشکل با آپدیت فیلدی با دیتاتایپ Long integer !!!!!



kablayi
شنبه 30 شهریور 1387, 21:28 عصر
سلام ...
من در برنامم از یه فیلد تو بانکم با دیتاتایپ long integer استفاده کردم ...
موقع insert داده ها مشکلی نیست و با کد زیر کار میکنه ...


Dim strdate As String = CByear.Text.Trim & "/" & CBmon.Text.Trim & "/" & CBday.Text.Trim
strsql = "insert into faktor (ID,FaktorTOT,StoreName,Tell,FaktorDate,comment) values (@ID,@FaktorTOT,@StoreName,@Tell,@FaktorDate,@comm ent)"
Dim cn As New OleDbConnection(constr)
Dim cmd As New OleDbCommand(strsql, cn)
With cmd
.Parameters.AddWithValue("@ID", txtfaktorID.Text.Trim)
.Parameters.AddWithValue("@FaktorTOT", CInt(txtfaktorTOT.Text.Trim))
.Parameters.AddWithValue("@StoreName", txtstoreNAME.Text.Trim)
.Parameters.AddWithValue("@Tell", txtstoreTELL.Text.Trim)
.Parameters.AddWithValue("@FaktorDate", strdate)
.Parameters.AddWithValue("@comment", txtcomment.Text.Trim)
End With
cn.Open()
cmd.ExecuteNonQuery()
cn.Close()


اما موقع آپدیت ارور datatype mismach میده و از اون فیلد long integer ایراد میگیره ...


Dim cn As New OleDbConnection(constr)
strsql = "Update Faktor SET FaktorTOT=@FaktorTOT,storeName=@storeName,tell=@te ll,Faktordate=@faktordate,comment=@comment where Faktor.ID='" & txtsearchID.Text.Trim & "'"
Dim cmd As New OleDbCommand(strsql, cn)
With cmd
.Parameters.AddWithValue("@StoreName", txtsearchName.Text.Trim)
.Parameters.AddWithValue("@FaktorTOT", Cint(txtserTOT.Text.Trim))
.Parameters.AddWithValue("@Tell", txtsearchtell.Text.Trim)
.Parameters.AddWithValue("@FaktorDate", strdate)
.Parameters.AddWithValue("@comment", txtsearchcomm.Text.Trim)
End With
cn.Open()
cmd.ExecuteNonQuery()
cn.Close()


مشکل از کجاست ...

ALI TT
شنبه 30 شهریور 1387, 23:09 عصر
برای فیلدهایی که long integer هستند ، از کارکتر ' نباید استفاده کرد . این کارکتر مخصوص رشته میباشد

اگه فیلدی که long integer هست فیلد ID باشه ، کد این شکلیه باید باشه :

Dim cn As New OleDbConnection(constr)
strsql = "Update Faktor SET FaktorTOT=@FaktorTOT,storeName=@storeName,tell=@te ll,Faktordate=@faktordate,comment=@comment where Faktor.ID=" & txtsearchID.Text.Trim
Dim cmd As New OleDbCommand(strsql, cn)
With cmd
.Parameters.AddWithValue("@StoreName", txtsearchName.Text.Trim)
.Parameters.AddWithValue("@FaktorTOT", Cint(txtserTOT.Text.Trim))
.Parameters.AddWithValue("@Tell", txtsearchtell.Text.Trim)
.Parameters.AddWithValue("@FaktorDate", strdate)
.Parameters.AddWithValue("@comment", txtsearchcomm.Text.Trim)
End With
cn.Open()
cmd.ExecuteNonQuery()
cn.Close()

یعنی :

این قسمت از کد :

... where Faktor.ID=" & txtsearchID.Text.Trim

جایگزین این قسمت میشود :

... where Faktor.ID='" & txtsearchID.Text.Trim & "'"

kablayi
یک شنبه 31 شهریور 1387, 04:53 صبح
علی آقا شما درست میگید ...
ولی مشکل من با اون فیلدیه که تو پارامترها اضافه کردم و رنگی نشون دادم ... !!!!
اونو long integer تعریف کردم ...
نمیدونم چرا این ارور رو میده ...