PDA

View Full Version : سوال: access database



tstsst
سه شنبه 23 اسفند 1390, 16:30 عصر
سلام
من برای ادد کردن به دیتا بیسم از این کد استفاده می کن که درست هم ادد می کنه ولی مشکل اینجاست که بعد از ادد مقدار تمام ستون ها برابر با اخرین چیزی که ادد کردم می شه ؟!!؟

Dim coner As String = "Provider=Microsoft.JET.OLEDB.4.0;Persist Security Info=False;Data Source=" & Application.StartupPath & "\Sky.mdb"
Dim Conn As OleDbConnection
Dim Dtadp As New OleDbDataAdapter
Conn = New OleDbConnection(coner)
Conn.Close()
Conn.Open()
Dtadp.InsertCommand = New OleDbCommand("INSERT INTO `tofs` (`ID`, `Hour`, `Min`) VALUES ('" & TextBox1.Text & "','" & NumericUpDown1.Value & "','" & NumericUpDown2.Value & "')", Conn)
Dtadp.InsertCommand.ExecuteNonQuery()
Conn.Close()
Dtadp.Dispose()


و اگه همونو این طوری بنویسم


Dim coner As String = "Provider=Microsoft.JET.OLEDB.4.0;Persist Security Info=False;Data Source=" & Application.StartupPath & "\Sky.mdb"
Dim Conn As OleDbConnection
Dim Dtadp As New OleDbDataAdapter
Conn = New OleDbConnection(coner)
Conn.Close()
Conn.Open()
Dtadp.InsertCommand = New OleDbCommand("INSERT INTO tofs (ID,Hour,Min) VALUES ('" & TextBox1.Text & "','" & NumericUpDown1.Value & "','" & NumericUpDown2.Value & "')", Conn)
Dtadp.InsertCommand.ExecuteNonQuery()
Conn.Close()
Dtadp.Dispose()

این خطا رو می ده ؟!

Syntax error in INSERT INTO statement.

Hybrid
سه شنبه 23 اسفند 1390, 16:45 عصر
سلام به شکل زیر تغییرش بده ببین درست میشه :


Dim coner As String = "Provider=Microsoft.JET.OLEDB.4.0;Persist Security Info=False;Data Source=" & Application.StartupPath & "\Sky.mdb"
Dim my_con As New OleDbConnection(coner)
Dim Dtadp As New OleDbDataAdapter
Dtadp.SelectCommand = New OleDbCommand()

With Dtadp.SelectCommand
.Connection = my_con
.CommandType = CommandType.Text
.CommandText = "insert into tofs(id,hour,min) values(@id,@hour,@min)"
.Parameters.AddWithValue("@id", CInt(TextBox1.Text))
.Parameters.AddWithValue("@hour", NumericUpDown1.Value.tostring())
.Parameters.AddWithValue("@min", NumericUpDown2.Value.tostring())
If .Connection.State <> ConnectionState.Open Then
.Connection.Open()
End If
.ExecuteNonQuery()
MessageBox.Show("ثبت شد")
my_con.Close()
End With

tstsst
سه شنبه 23 اسفند 1390, 17:03 عصر
Syntax error in INSERT INTO statement.

همون خطا
من از همن کد در یک form دیگه استفاده کردم درست کار میکنه ؟!

Hybrid
سه شنبه 23 اسفند 1390, 19:01 عصر
یک احتمال خیلی خیلی زیاد مشکل از فیلد id هست ، احتمالا فیلد id در بانک شما Auto number هست ، پس به شکل زیر تغییرش بده ببین درست میشه :


Dim coner As String = "Provider=Microsoft.JET.OLEDB.4.0;Persist Security Info=False;Data Source=" & Application.StartupPath & "\Sky.mdb"
Dim my_con As New OleDbConnection(coner)
Dim Dtadp As New OleDbDataAdapter
Dtadp.SelectCommand = New OleDbCommand()

With Dtadp.SelectCommand
.Connection = my_con
.CommandType = CommandType.Text
.CommandText = "insert into tofs(hour,min) values(@hour,@min)"
.Parameters.AddWithValue("@hour", NumericUpDown1.Value.tostring())
.Parameters.AddWithValue("@min", NumericUpDown2.Value.tostring())
If .Connection.State <> ConnectionState.Open Then
.Connection.Open()
End If
.ExecuteNonQuery()
MessageBox.Show("ثبت شد")
my_con.Close()
End With

tstsst
چهارشنبه 24 اسفند 1390, 11:11 صبح
نه آتونامبر نیست نوشته هست

.Parameters.AddWithValue("@id", TextBox1.Text)