PDA

View Full Version : مشکل UPDATE در ACCESS



VB.NET2005
پنج شنبه 25 بهمن 1386, 14:14 عصر
دوستان یه نگاهی اگه میشه به این برنامه بندازند نمیدونم مشکله Update در کجاست . . .

VB.NET2005
پنج شنبه 25 بهمن 1386, 21:14 عصر
اساتید نظری ندارند ؟

آرام جان گل
پنج شنبه 25 بهمن 1386, 22:40 عصر
سلام کاربر عزیز

اون طور که من برنامتون را دیدم شما در لود فرم تابعی بنام
fillrank() دارید که در این تابع دستور update راهم صادر می کنید پس در زمان لود فرم خطایی با این مضمون دریافت می کنید "syntax error in update statment"

حالا من بهتون می گم علتش چیه
علتش اینه که شما یکم کم حوصله تشریف دارید و حوصله دیباگ کردن برنامه را ندارید

خوب به من بگید در لحظه لود در NameTextBox و GradeTextBox چی دارید؟ خوب معلومه هیچی
خوب موقع دیباگ کردن ببینید در تابع( docommand ) کامند تکست شما برابر رشته زیر است


"update stTable set Name ='',Avg = , rotbe = where ……."


خوب نگاه کنید :
در جدولی که تعریف کرده بودید( نام) را تکست تعریف کرده بودید پس با وجود این رشته تهی در رشته update بالا مشکلی پیش نمی آورد ولی چون avg عدد است نمی تواند برابر با هیچی باشد همین طور rotbe نمی تواند برابر هیچی باشد
پس باید شما NameTextBox وGradeTextBox و .......... را ابتدا در یک متغییری با مقادیر پیش فرض بریزید و بعد به کامند تکست پاس دهید تا در زمانی که تکس باکس ها خالی هستند مشکلی پیش نیاید و مقادیر پیش فرض به درستی برای برنامه عمل کنند مثلا برای عدد ها می توانید مقدار(-1) را بدهید و برای رشته ها تهی را بدهید

راستی یک انتقاد :
این چه جدولی بود که id نداشت ؟

VB.NET2005
جمعه 26 بهمن 1386, 06:14 صبح
دوست عزیز این کاری رو که گفتین انجام دادم ولی بازم نشد . میتونید خودتون امتحان کنید .

nasseritemp
جمعه 26 بهمن 1386, 15:35 عصر
تابع ()fillRank اصلاح شده :



Dim i As Int32 = 0
Dim con As New OleDb.OleDbConnection("provider=microsoft.jet.oledb.4.0 ; data source=" & Application.StartupPath() & "\student.mdb")
Dim da2 As New OleDb.OleDbDataAdapter("select * from stTable order by Avg DESC,Name ASC", con)
Dim cb As New OleDb.OleDbCommandBuilder(da2)
con.Close()
con.Open()
Dim dt As New DataTable
da2.Fill(dt)
Dim str As String
For i = 0 To dt.Rows.Count - 1
Dim db2 As New DataBase
Dim dt2 As New DataTable

str = "Update stTable Set rotbe = " & Convert.ToInt32(i + 1) & " where Name Like '" & dt.Rows(i)("Name") & "'"
db2.DoCommand(str)
dt2 = db2.MySelect("select * from stTable order by Avg DESC,Name ASC")
Next

dgv.DataSource = dt

VB.NET2005
جمعه 26 بهمن 1386, 16:44 عصر
با تشکر از شما دوست عزیز ولی مثله اینکه این کد هم مشکل داره البته از سینتکسه اپدیت اشکال نمیگیره ها ولی وقتی نمره جدید وارد میکنی رتبه های جدید نمیده اگه زحمتی نیست خودتون امتحانش کنید . با تشکر


Sub fillrank()
Try
Dim i As Int32 = 0
Dim con AsNew OleDb.OleDbConnection("provider=microsoft.jet.oledb.4.0 ; data source=" & Application.StartupPath() & "\student.mdb")
Dim da2 AsNew OleDb.OleDbDataAdapter("select * from stTable order by Avg DESC,Name ASC", con)
Dim cb AsNew OleDb.OleDbCommandBuilder(da2)
con.Close()
con.Open()
Dim dt AsNew DataTable
da2.Fill(dt)
Dim str AsString
For i = 0 To dt.Rows.Count - 1
Dim db2 AsNew DataBase
Dim dt2 AsNew DataTable
str = "Update stTable Set rotbe = " & Convert.ToInt32(i + 1) & " where Name Like '" & dt.Rows(i)("Name") & "'"
db2.DoCommand(str)
dt2 = db2.MySelect("select * from stTable order by Avg DESC,Name ASC")
Next
dgv.DataSource = dt
Catch ex As Exception
MsgBox(ex.Message)
EndTry
EndSub

VB.NET2005
شنبه 27 بهمن 1386, 15:07 عصر
اساتید بزرگوار نظری ندارند ؟ ؟ ؟

VB.NET2005
یک شنبه 28 بهمن 1386, 12:47 عصر
دوستان عزیز سخت درگیر این مشکلم _(کسی راه حلی نداره . . .)

VB.NET2005
دوشنبه 29 بهمن 1386, 14:57 عصر
دوستان عزیز این اخرین قسمته برنامم هست و میخام VB2008 رو شروع کنم خواهشن منو راهنمایی کنید .

visual_sadegh
دوشنبه 29 بهمن 1386, 15:07 عصر
البته از سینتکسه اپدیت اشکال نمیگیره
دوست عزیز اگه شما try رو برداری اگه خطایی باشه معلوم میشه

VB.NET2005
دوشنبه 29 بهمن 1386, 16:19 عصر
دوست گرامی هر کار که بگید کردم (با Try بدون Try و ...) نمیدونم مشکل از کجاست .

VB.NET2005
دوشنبه 29 بهمن 1386, 16:44 عصر
با تشکر فراوان از جناب اقای SUB ZERO عزیز به خاطر کمک بزرگی که به من کردند واقعا از شما ممنونم .
انشاالله در تمام مراحل زندگی موفق باشید مخصوصا امتحانات .

و با تشکر از جناب اقای nasseritemp جهت اصلاح کد اپدیت .

نسخه کامل :
http://barnamenevis.org/forum/attachment.php?attachmentid=14775&d=1203342284