PDA

View Full Version : مشکل با ثبت در دیتابیس



toopak
سه شنبه 29 مرداد 1387, 04:00 صبح
سلام و خسته نباشید
من یه مشکل پیدا کردم با ذخیره در دیتابیس

کدم اینه:


If Not SlrTextbox1.Text = "" Then
Dim inssql1, inssql2 As String
Dim ss As Integer = SlrTextbox1.Text
inssql1 = "SELECT * FROM tbdrivers where tbdrivers.drid= " & ss
inssql2 = "INSERT INTO tbq(code,name)VALUES('" & SlrTextbox1.Text & "','" & Label2.Text & "')"
Dim cmdsql As New OleDbCommand
cmdsql.Connection = con


cmdsql.CommandText = inssql1

Dim DR As OleDbDataReader
DR = cmdsql.ExecuteReader
If DR.HasRows = True Then
DR.Read()
Label2.Text = DR("drname")
DR.Close()

cmdsql.CommandText = inssql2
cmdsql.ExecuteNonQuery()
Me.TbqTableAdapter1.Fill(Me.TaxiDataSet1.tbq)
MsgBox("اطلاعات با موفقیت ثبت شد", MsgBoxStyle.OkOnly + MsgBoxStyle.SystemModal, "پیغام")

Elseتو این کد
اول یه آی دی از دیتابیس خونده میشه و به لیبل2 فیلد نام رو برمیگردونه(قسمت آبی)
قسمت دوم محتوای تکست باکس و لیبل2رو توی دیتابیس مینویسه(قسمت سبز)
حالا مشکل اینجاس که وقتی برنامه اجرا میشه تو قسمت قرمز ارور زیر رو مده



No value given for one or more required parametersچیکارش کنم؟:افسرده:
ممنون

Evil 69
سه شنبه 29 مرداد 1387, 11:07 صبح
اين خطا ممولا وقتي اطفاق مي افته كه شما توي database اصلي يك سري تغييراتي اعمال كرده باشي مثلا يك فيلد را حذف كرده باشي يا يكي اضافه كرده باشي ولي اين تغييرات رو به برنامت اعمال نكرده باشي
برو از توي dataview كليد configor رو بزن تا اطلاعات بانك رو با اطلاعات فايل app.conf بدوني يكي كني
شايد مشكلت حل بشه

toopak
چهارشنبه 30 مرداد 1387, 00:24 صبح
نه آقا
مشگل حدتر از این چیزاس
امتحان کردم ولی تاثیری نداشت :-(

arsalansalar
چهارشنبه 30 مرداد 1387, 11:47 صبح
سلام
اين كد واسه add كردن به بانكه:

con = New OleDbConnection("provider=microsoft.jet.oledb.4.0 ; data source=" & Application.StartupPath() & "\jma.mdb")
Try
Dim strSQL As String = _
"INSERT INTO rifa (fsh,fno)" & _
"VALUES (@fsh,@fno)"
Dim cmd As New OleDbCommand(strSQL, con)
With cmd
.Parameters.Add(New OleDbParameter("@fsh", TextBox1.Text))
.Parameters.Add(New OleDbParameter("@fno", TextBox2.Text))
End With
con.Open()
cmd.ExecuteNonQuery()
con.Close()
Catch sqlExc As OleDbException
MessageBox.Show(sqlExc.ToString, "SQL Exception Error!", _
MessageBoxButtons.OK, MessageBoxIcon.Error)
Catch exc As Exception
End Try

اين كد هم واسه سرچي هست كه مي خواهي انجام شه:

Dim selectSql As String
selectSql = "Select bank from bank where val(id) = '" & tjo.Text & "'"
con = New OleDbConnection("provider=microsoft.jet.oledb.4.0 ; data source=" & Application.StartupPath() & "\jma.mdb")
cmdSelect = New OleDbCommand(selectSql, con)
con.Open()
dr = cmdSelect.ExecuteReader()
If dr.Read Then
TextBox3.Text = dr("bank")
End If
con.Close()
dr.Close()
اين 2 تا رو ادغام كن تا اون چيزي كه مي خواهي بدست بياري.
خطاي بالا هم كه نوشتي زماني رخ مي دهد كه يا اشتباه تايپي در نام فيلد وجود دارد يا به طور كلي اون فيلد وجود ندارد.
موفق باشي:چشمک:

HadiVB
چهارشنبه 30 مرداد 1387, 14:35 عصر
من یک بار یه مشکلی شبیه مشکل شما برام پیش اومد
آخر هم فهمیدم که در ADO.NET 2.0 شما باید حتما در جدول تون یک Primery key داشته باشین در غیر این صورت خطا میده