منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : مشكلة فى كود حفظ بالداتا بيز
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
إقتباس : Private Sub Save_Record()
Dim conn As New OleDbConnection
Dim cmd As New OleDbCommand
Dim sSQL As String = String.Empty


Try
'get connection string declared in the Module1.vb and assing it to conn variable
conn = New OleDbConnection(Get_Constring)
conn.Open()
cmd.Connection = conn
cmd.CommandType = CommandType.Text

sSQL = "INSERT INTO [Main] (Code, txtLastName, dtpDOB, area, line, note)"
sSQL = sSQL & " VALUES(@fileno, @drname, @date, @area, @line, @note)"
cmd.CommandText = sSQL


'set paramaters
cmd.Parameters.Add("@fileno", OleDbType.VarChar).Value = IIf(Len(Trim(Me.Code.Text)) > 0, Me.Code.Text, DBNull.Value)
cmd.Parameters.Add("@drname", OleDbType.VarChar).Value = IIf(Len(Trim(Me.txtLastName.Text)) > 0, Me.txtLastName.Text, DBNull.Value)
cmd.Parameters.Add("@area", OleDbType.VarChar).Value = IIf(Len(Trim(Me.area.Text)) > 0, Me.area.Text, DBNull.Value)
cmd.Parameters.Add("@date", OleDbType.Date).Value = IIf(Me.dtpDOB.Text <> " ", Me.dtpDOB.Value, DBNull.Value)
cmd.Parameters.Add("@date", OleDbType.Date).Value = Me.dtpDOB.Text


cmd.Parameters.Add("@line", OleDbType.VarChar).Value = IIf(Len(Trim(Me.line.Text)) > 0, Me.line.Text, DBNull.Value)
cmd.Parameters.Add("@note", OleDbType.VarChar).Value = IIf(Len(Trim(Me.note.Text)) > 0, Me.note.Text, DBNull.Value)

cmd.ExecuteNonQuery()

'If the record is new then we have to get its ID so that we can edit it rightaway after the insertion.

MsgBox("Data has been save.")

Catch ex As Exception
MsgBox(ErrorToString)
Finally
conn.Close()
End Try
End Sub

ما المشكلة فى هذا الكود

تظهر لى رسالة

Syntax error in INSERT INTO statement.
The INSERT INTO statement contains the following unknown field name: 'Code'. Make sure you have typed the name correctly, and try the operation again.
---------------------------
OK
---------------------------
ظهرت تلك الرسالة علماً ان هذا الحقل فى قاعدة البيانات Number

كود :
sSQL = "INSERT INTO [Main] ([Code], [txtLastName], [dtpDOB], [area], [line], [note])"
            sSQL = sSQL & "  VALUES(@fileno, @drname, @date, @area, @line, @note)"
            cmd.CommandText = sSQL
            

            'set paramaters
            cmd.Parameters.Add("@fileno", OleDbType.VarChar).Value = IIf(Len(Trim(Me.Code.Text)) > 0, Me.Code.Text, DBNull.Value)
            cmd.Parameters.Add("@drname", OleDbType.VarChar).Value = IIf(Len(Trim(Me.txtLastName.Text)) > 0, Me.txtLastName.Text, DBNull.Value)
            cmd.Parameters.Add("@date", OleDbType.Date).Value = IIf(Me.dtpDOB.Text <> " ", Me.dtpDOB.Value, DBNull.Value)
            cmd.Parameters.Add("@date", OleDbType.Date).Value = Me.dtpDOB.Text
            cmd.Parameters.Add("@area", OleDbType.VarChar).Value = IIf(Len(Trim(Me.area.Text)) > 0, Me.area.Text, DBNull.Value)
            cmd.Parameters.Add("@line", OleDbType.VarChar).Value = IIf(Len(Trim(Me.line.Text)) > 0, Me.line.Text, DBNull.Value)
            cmd.Parameters.Add("@note", OleDbType.VarChar).Value = IIf(Len(Trim(Me.note.Text)) > 0, Me.note.Text, DBNull.Value)

            cmd.ExecuteNonQuery()
اسماء الحقول فى قاعدة البيانات بالترتيب

كود :
id  = autonumber
fileno = number
drname = text
date = date/time
area = text
line = text
note = memo
قمبت بتغيير اسم الحقل وتذال الرسالة موجودة
الحقل الاول ترقيم تلقائى الرجاء المساعدة
.....

كود :
' وضع اسم الجدول واسماء الحقول بين أقواس مربعة [] ولكن اسماء البارمترات لا توضع بين أقواس
sSQL = "INSERT INTO [Main] ( [fileno],  [drname], [date], [area], [line], [note] )"
sSQL = sSQL & " VALUES ( @fileno  , @drname, @date, @area, @line, @note )"
cmd.CommandText = sSQL

' في التعامل مع الأكسس ترتيب أسطر البارامترات يجب أن يكون بنفس ترتيب اسمائها في جملة إسكيوإل
cmd.Parameters.AddWithValue("@fileno", Val(Me.Code.Text))
cmd.Parameters.AddWithValue("@drname", Me.txtLastName.Text.Trim)
cmd.Parameters.AddWithValue("@date", Me.dtpDOB.Value)
cmd.Parameters.AddWithValue("@area", Me.area.Text.Trim)
cmd.Parameters.AddWithValue("@line", Me.line.Text.Trim)
cmd.Parameters.AddWithValue("@note", Me.note.Text.Trim)

.....
---------------------------
Address_Book
---------------------------
No value given for one or more required parameters.
---------------------------
OK
---------------------------
تظهر بذالك الكود

بعد تعديلة بالشكل التى
كود :
sSQL = "INSERT INTO [Main] ( [txtcode],  [drname], [dtpDOB], [area], [line], [note] )"
            sSQL = sSQL & " VALUES ( @fileno  , @drname, @date, @area, @line, @note )"
            cmd.CommandText = sSQL

            ' في التعامل مع الأكسس ترتيب أسطر البارامترات يجب أن يكون بنفس ترتيب اسمائها في جملة إسكيوإل
            cmd.Parameters.AddWithValue("@fileno", Val(Me.txtcode.Text))
            cmd.Parameters.AddWithValue("@drname", Me.txtLastName.Text.Trim)
            cmd.Parameters.AddWithValue("@date", Me.dtpDOB.Value)
            cmd.Parameters.AddWithValue("@area", Me.area.Text.Trim)
            cmd.Parameters.AddWithValue("@line", Me.line.Text.Trim)
.....

الحقل [dtpDOB] ليس من الحقول التي ذكرتها حضرتك في المشاركة #3 فكيف ذلك!!!!!!!!!!!!!!!!!!!!!!!!

الكود الأخير التي وضعته لك في المشاركة #5 كان مطابقاً للحقول التي ذكرتها حضرتك في المشاركة #3 .

.....
(11-09-14, 02:54 PM)vbnet كتب : [ -> ].....

كود :
' وضع اسم الجدول واسماء الحقول بين أقواس مربعة [] ولكن اسماء البارمترات لا توضع بين أقواس
sSQL = "INSERT INTO [Main] ( [fileno],  [drname], [date], [area], [line], [note] )"
sSQL = sSQL & " VALUES ( @fileno  , @drname, @date, @area, @line, @note )"
cmd.CommandText = sSQL

' في التعامل مع الأكسس ترتيب أسطر البارامترات يجب أن يكون بنفس ترتيب اسمائها في جملة إسكيوإل
cmd.Parameters.AddWithValue("@fileno", Val(Me.Code.Text))
cmd.Parameters.AddWithValue("@drname", Me.txtLastName.Text.Trim)
cmd.Parameters.AddWithValue("@date", Me.dtpDOB.Value)
cmd.Parameters.AddWithValue("@area", Me.area.Text.Trim)
cmd.Parameters.AddWithValue("@line", Me.line.Text.Trim)
cmd.Parameters.AddWithValue("@note", Me.note.Text.Trim)

.....

الرجاء مراجعه اول الكود وسوف ترا بنفسك انه موجود من البداية

المشكلة لسة موجودة