View Full Version : OleDbCommand.ExecuteNonQuery()
hojjat_sekhavati
پنج شنبه 06 آذر 1382, 21:46 عصر
سلام
اگه پررویی نباشه یه نفر یه لطفی میکنه کد لازم برای insert /update/delete در یک بانک اکسس بدون استفاده از دیتا ست رو بگه.
الان از OleDbCommand.ExecuteNonQuery() استفاده میکنم خطا میده میگه:
No value given for one or more required parameters
تشکر
Farhad.B.S
پنج شنبه 06 آذر 1382, 22:30 عصر
Dim myCon As New OleDb.OleDbConnection()
Dim myCommand As New OleDb.OleDbCommand()
Dim mySQLCommand As String
myCon.ConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(".") & "\Database.mdb"
myCon.Open()
myCommand.Connection = myCon
myCommand.CommandType = CommandType.Text
mySQLCommand = "INSERT INTO Users (usernameA, passwordA) VALUES (@Username, @Password)"
myCommand.CommandText = mySQLCommand
myCommand.Parameters.Add("@Username", txtUser.Text)
myCommand.Parameters.Add("@Password", txtPwd.Text)
myCommand.ExecuteNonQuery()
myCon.Close()
احتمالا شما پارامتر هایی رو که در سیکول کامند استفاده کردید مقدار دهی نکردید یا اشکالی در سینتکس سیکول کامند شما وجود داره .
و دیگه اینکه اگه از یه command در چند جا استفاده میکنید ، حتما قبل از استفاده ، اون رو توسط
کد زیر تمیز :mrgreen: کنید :
dbCommand.Parameters.Clear()
در صورتی که مشکلتون حل نشد کد مورد نظر رو بنویسید.
hojjat_sekhavati
پنج شنبه 06 آذر 1382, 23:24 عصر
ممنون آقا فرهاد. بازهم کار نکرد. از لحاظ سینتکس و اینا صدبار چک کردم. وگرنه سوال نمی کردم
این کدیه که استفاده میکنم
Dim strDBPath As String = Server.MapPath("myDB.mdb")
Dim oleConn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath)
Dim strSql = "INSERT INTO tblName (fName, lName) VALUES (txt_fName.Text, txt_lName.Text)"
Dim oleCmd As New OleDbCommand(strSql, oleConn)
oleConn.Open()
oleCmd.ExecuteNonQuery()
oleConn.Close()
همین کد البته با دستور select متفاوت، موقع فراخوانی متدهای ()ExecuteReader و ()ExecuteScalar کار میکنه.
میدونی بدیش اینه که کار به این سادگی با چند خط کد ساده هی به آدم خطا بده :x
Farhad.B.S
پنج شنبه 06 آذر 1382, 23:35 عصر
اشکال از همون سیکول کامنده :
"INSERT INTO tblName (fName, lName) VALUES (txt_fName.Text, txt_lName.Tex
شما اسم txt_fname.Text رو در پارامتر ها قرار دادید که سیکول انجین اون رو به عنوان یه کامند میخونه .
بابراین سیکول کامند رو به کد زیر تغییر بدید :
"INSERT INTO tblName (fName, lName) VALUES ('" & txt_fName.Text & "','" & txt_lName.Tex & "'"
یا اینکه میتونید از پارامتر های این شی استفاده کنید (در کد اول)
hojjat_sekhavati
جمعه 07 آذر 1382, 11:12 صبح
:خیلی متعجب:
عجب اشتباهی
...
آقا یه دنیا ضربدر دو ممنون.
hojjat_sekhavati
چهارشنبه 12 آذر 1382, 05:09 صبح
سلام
بازم مشکل پیش اومد
تو بخش مشخص کردن موقعیت پایگاه داده
وقتی از این استفاده میکنم
Dim strDBPath As String = Server.MapPath("../db/myDB.mdb")
Dim oleConn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strDBPath)
میگه: Cannot use a leading .. to exit above the top directory
از دی اس ان هم که استفاده میکنم میگه: Could not find installable ISAM
دی اس انی که می نویسم:
Dim oleConn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; DSN=dsnName;uid=654321;pwd=123456")
روی سیستم خودم اولی کاملا جواب میده. البته نسخه قدیمی فریم ورکه. همون اولا که اومده بود.
ساعت چهار صبحه
....
چه باید کرد.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.