واضح آرشیو وب فارسی:سایت ریسک: t=37163">مشكل در اجراي دستورات sql در VB.NET emad 4000 09 شهريور 1384, 01:20سلام من 3 تا مشكل توي برنامه ام دارم كه اگه ميشه كمكم كنيد در برنامه ام يه ديتاگريد دارم و 3 تا دكمه . دكمه اول بايد يه رديف از ديتاگريد رو پاك كنه كه دستوراتش اينه rowi = DataGrid 1.CurrentRowIndex.ToString Dim WorkerDelCmd As OleDbCommand Dim DelSqlStr As String DelSqlStr = "Delete From WorkerList Where ID = " & rowi Conn.Open() WorkerDelCmd.CommandText = DelSqlStr WorkerDelCmd.Connection = Conn WorkerDelCmd.ExecuteNonQuery() Conn.Close() ولي كار نمي كنه و اين پيغام رو ميده Object reference not set to an instance of an object --------------------------------------------------------------------------------------------------------- دكمه دوم بايد با يه ديالوگ باكس به اسم AddWorkerDialog چندتا متغير بگيره و به ديتاست اضافه كنه Dim AddWorkerDialog As New AddWorker Dim AddWorkerCmd As OleDbCommand Dim AddSqlStr, fnv, lnv, fav, idv, adv As String AddWorkerDialog.ShowDialog() If AddWorkerDialog.DialogResult = DialogResult.OK Then Me.BindingContext(WorkerDSName, "WorkerList").AddNew() fnv = AddWorkerDialog.FNameBox.Text.ToString lnv = AddWorkerDialog.LNameBox.Text.ToString fav = AddWorkerDialog.FatherBox.Text.ToString idv = AddWorkerDialog.IDBox.Text.ToString adv = AddWorkerDialog.AddressBox.Text.ToString AddSqlStr = "Insert Into WorkerList(FirstName,LastName,FatherName,CardID,Ad dress) Values ( " & fnv & " , " & lnv & " , " & fav & " , " & idv & " , " & adv & " );" Conn.Open() AddWorkerCmd = New OleDbCommand(AddSqlStr, Conn) AddWorkerCmd.ExecuteNonQuery() WorkerDSName.Clear() WorkerAdName.Fill(WorkerDSName, "WorkerList") Conn.Close() End If اين يكي هم اين پيغام رو ميده No value given for one or more required parameters --------------------------------------------------------------------------------------------------------- سومي هم بايد تغيرات ديتاگريد رو كه به ديتاست وصله آپديت كنه تو ديتابيس Dim WorkerCB As OleDbCommandBuilder WorkerCB = New OleDbCommandBuilder(WorkerAdName) WorkerAdName.Update(WorkerDSName, "WorkerList") ولي اين پيغام رو ميده Dynamic generation for the UpdateCommand is not supported against a SelectCommand that does not return any key column information خلاصه اينكه هيچ كدومشون كار نمي كنن . ممنون ميشم اگه كمكم كنيد emad 4000 09 شهريور 1384, 01:23ضمنا بگم كه من ديتاست و آداپتر و كانكشن رو ابتداي برنامه هنگام لود تعريف كردم Dim WorkerDSName As New DataSet Dim WorkerAdName As OleDbDataAdapter Dim Conn As OleDbConnection Dim connStr, sqlStr1, sqlStr2 As String connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Database.mdb" sqlStr1 = "SELECT ID as [شماره کارگر],FirstName as نام,LastName as [نام خانوادگي],FatherName as [نام پدر],CardID as [شماره شناسنامه],Address as آدرس FROM WorkerList" Conn = New OleDbConnection(connStr) Conn.Open() WorkerAdName = New OleDbDataAdapter(sqlStr1, Conn) WorkerDSName.Clear() WorkerAdName.Fill(WorkerDSName, "WorkerList") DataGrid 1.DataSource = WorkerDSName.Tables("WorkerList") Conn.Close() و اينا رو به صورت عمومي تعريف كردم كه توي توابع ديگه هم كار كنن emad 4000 10 شهريور 1384, 05:37هيشكي نمي خواد به من كمك كنه ؟ ): emad 4000 11 شهريور 1384, 00:36می بینم که اینجا همه اوضاعشون از من بدتره :eek: خودم دوتاشو فهمیدم . می گم که شما هم یاد بگیرین . آره قربونش :lol: و حالا اصل مطلب توي اولي من به جاي Dim WorkerDelCmd As OleDbCommand نوشتم Dim WorkerDelCmd As New OleDbCommand همين . البته هنوز نمي دونم فرقشون چيه . اگه مي دونين به منم بگین :-? ---------------------------------------------------------------- دومي رو هم فهميدم.مي باست براي هر كدوم از value ها دوتا كوتيشن مي ذاشتم كه يادم رفته بود :cry: ----------------------------------------------------------------- و اما سومي هرکارش می کنم همون ارور رو می ده :razz: نكته جالبش اينه كه از اين كد سومي توي دوتا برنامه ديگه استفاده كردم يكيش عين همين بود اما ارور نمي داد يكي ديگشم به جاي ديتاگريد از فيلد متني استفاده كردم كاملا درست كار مي كنه كمكم كنيد . حسابي علاف شدم :sad: :cry: :mad: :neutral: :-? :razz: :eek: MnavidM 12 شهريور 1384, 08:00سلام. آقا عماد لطف کن این کد هایی که می نویسی در بین تگ [code] قرار بدی تا بهتر بشه خوندش . نوشته های قبلیت رو ویرایش کردم , تا بهتر خونده بشه :wink: موفق باشی. نوید. emad 4000 14 شهريور 1384, 08:44چشم از اين به بعد ... يكي جواب بده . خيلي حياتيه هااااا... MnavidM 14 شهريور 1384, 08:54سلام. یه سر به اینجا () بزن . تو همین مایه ها حرف زدن . موفق باشی. نوید.
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 4463]