PDA

View Full Version : سوال: مشکل در Data type mismatch in criteria expression.



mehran5
شنبه 14 فروردین 1389, 01:07 صبح
سلام دوستان این ارور در کد زیر رخ داده .یعنی در قسمت command3.ExecuteNonQuery


ممنون


Dim strupdate AsString
strupdate = "Provider = Microsoft.Jet.OLEDB.4.0;"
strupdate &= "Data Source =" & My.Application.Info.DirectoryPath & "\msAccess\anbar.mdb"
conn = New OleDbConnection(strupdate)
'Try
Dim command3 As OleDbCommand = New OleDbCommand("UPDATE koleamval SET NAMEEAMVAL_ID=@NAMEEAMVAL_ID,AMIN_ID=@AMIN_ID,TEDA D=@TEDAD,SERYAL=@SERYAL,MOLAHEZAT=@MOLAHEZAT where ID='" + TXT_number.Text + "'", conn)
conn.Open()
command3.Parameters.Add("@NAMEEAMVAL_ID", OleDbType.Integer).Value = CBO_NAMEEAMVAL_ID.SelectedValue
command3.Parameters.Add("@AMIN_ID", OleDbType.Integer).Value = CBO_AMIN_ID.SelectedValue
command3.Parameters.Add("@TEDAD", OleDbType.Integer).Value = TXT_TEDAD.Text.Trim
command3.Parameters.Add("@SERYAL", OleDbType.Char).Value = TXT_SERYAL.Text.Trim
command3.Parameters.Add("@MOLAHEZAT", OleDbType.Char).Value = TXT_MOLAHEZAT.Text.Trim
command3.ExecuteNonQuery()

میشه بگید مشکل کجاست؟

alireza_s_84
شنبه 14 فروردین 1389, 01:22 صبح
سلام دوستان این ارور در کد زیر رخ داده .یعنی در قسمت command3.ExecuteNonQuery


ممنون


Dim strupdate AsString
strupdate = "Provider = Microsoft.Jet.OLEDB.4.0;"
strupdate &= "Data Source =" & My.Application.Info.DirectoryPath & "\msAccess\anbar.mdb"
conn = New OleDbConnection(strupdate)
'Try
Dim command3 As OleDbCommand = New OleDbCommand("UPDATE koleamval SET NAMEEAMVAL_ID=@NAMEEAMVAL_ID,AMIN_ID=@AMIN_ID,TEDA D=@TEDAD,SERYAL=@SERYAL,MOLAHEZAT=@MOLAHEZAT where ID='" + TXT_number.Text + "'", conn)
conn.Open()
command3.Parameters.Add("@NAMEEAMVAL_ID", OleDbType.Integer).Value = CBO_NAMEEAMVAL_ID.SelectedValue
command3.Parameters.Add("@AMIN_ID", OleDbType.Integer).Value = CBO_AMIN_ID.SelectedValue
command3.Parameters.Add("@TEDAD", OleDbType.Integer).Value = TXT_TEDAD.Text.Trim
command3.Parameters.Add("@SERYAL", OleDbType.Char).Value = TXT_SERYAL.Text.Trim
command3.Parameters.Add("@MOLAHEZAT", OleDbType.Char).Value = TXT_MOLAHEZAT.Text.Trim
command3.ExecuteNonQuery()

میشه بگید مشکل کجاست؟

سلام یعنی Syntax رشته پرس و جو ایراد داره اینجوری تعریف کن:


UPDATE Users SET Users.Email = [@Email], Users.Fname = [@Fname], Users.Lname = [@Lname], Users.City = [@City], Users.Address = [@Address], Users.Phone = [@Phone], Users.WebSite = [@WebSite], Users.Job = [@Job]
WHERE (((Users.Username)=[@Username]));

پارامترها رو که خودت درست تعریف کردی ولی :

where ID='" + TXT_number.Text + "'",
رو هم پارامتری کن اینجوری ایراد فنی زیاد داره یکیش SQl Ejection .
موفق باشی

mehran5
یک شنبه 15 فروردین 1389, 00:35 صبح
مشکل تو خط ششم بود که به شکل ذیر اصلاح کردمش؟و درست شد .بازم ممنون


conn = New OleDbConnection(strconn)
Dim strupdate AsString
strupdate = "UPDATE koleamval SET NAMEEAMVAL_ID=@NAMEEAMVAL_ID,AMIN_ID=@AMIN_ID,TEDA D=@TEDAD,SERYAL=@SERYAL,MOLAHEZAT=@MOLAHEZAT where ID="
strupdate = strupdate & Val(TXT_number.Text.Trim)
Dim command3 As OleDbCommand = New OleDbCommand(strupdate, conn)