مشکل با ثبت زمان در دیتابیس
سلام
من با کد زیر توی فرمم زمان سیستم رو میگیرم
Dim gettime As String = Format(Now, "hh:mm:ss").ToString
وقتی میخوام توی دیتابیس با این دستور بنویسم
inssql2 = "INSERT INTO tbservices(sid,accid,accname,time)VALUES('" & getsid & "','" & getaccid & "','" & getaccname & "','" & gettime & "')"
cmdsql.Connection = con
cmdsql.CommandText = inssql2
قسمت قرمز رو خطلا میده میگه syntax error INSERTمیده
توی بانکم فیلد زمان string
کد رو چطوری تغییر بدم؟
(مشکل حل شد) به پست 12-13-14-15 مراجعه کنید
نقل قول: مشکل با ثبت زمان در دیتابیس
سلام ...
اگرفقط ساعت رو میخوای ذخیره کنی اینطوری بنویس:
Dim gettime As String = TimeString
من دیتابیس شما رو ندیدم ولی احتمال میدم اگر طولی رو برای فیلدهاتون معین کرده باشین اونو یه بار دیگه چک کنید ... مثلا ممکنه برای فیلد time حداکثر طول 6 رو در نظر گرفته باشین که باید به 8 تغییر پیدا کنه ...
اگه مشکلتون حل نشد خطایی رو که میگیره بنویسید تا ببینم مشکل از کجاست ...
موفق باشید ...
نقل قول: مشکل با ثبت زمان در دیتابیس
متاسفانه همون error رو میده
Syntax error in INSERT INTO statement
تو بانکم طول فیلد کم نیست
نقل قول: مشکل با ثبت زمان در دیتابیس
همه فیلدهای جدولتون از نوع string ... ؟؟
به صورت پارامتری بنویس احتمالا مشکل حل بشه ...
نقل قول: مشکل با ثبت زمان در دیتابیس
نقل قول: مشکل با ثبت زمان در دیتابیس
نقل قول:
نوشته شده توسط
toopak
چطوری یعنی؟
SqlCommand يه Property داره به نام پارامتر
http://msdn.microsoft.com/en-us/libr...ollection.aspx
که ميتوني با اون Selectته متغير دار بنويسي
http://msdn.microsoft.com/en-us/libr...withvalue.aspx
نقل قول: مشکل با ثبت زمان در دیتابیس
ممنون اما من 10تا فیلد دارم
اگه بخوام همرو از این روش بفرستم که خیلی شلوغ میشه و کدمم قاطی میشه! :-(
نقل قول: مشکل با ثبت زمان در دیتابیس
نقل قول:
نوشته شده توسط
toopak
ممنون اما من 10تا فیلد دارم
اگه بخوام همرو از این روش بفرستم که خیلی شلوغ میشه و کدمم قاطی میشه! :-(
10تا متغير يعني 10 خط کد !!
در هر صورت فکر ميکنم استانداردش اينطوريه !
نقل قول: مشکل با ثبت زمان در دیتابیس
سلام ...
فکر نمیکنم خیلی شلوغ بشه ... برعکس برنامه خواناتر میشه ...
Dim constr As String = "Provider=Microsoft.jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\database.mdb"
Dim cn As New OleDbConnection(constr)
strsql = "insert into driver (sid,accid,accname,time) VALUES (@sid,@accid,@accname,@time)"
Dim cmd As New OleDbCommand (strsql, cn)
With cmd.Parameters
.AddWithValue("@sid", getsid)
.AddWithValue("@accid",getaccid )
.AddWithValue("@accname",getaccname )
.AddWithValue("@time", gettime)
end with
cn.Open()
cmd.ExecuteNonQuery()
cn.Close()
دیگه مشکل کوتیشن("") و سینگل کوتیشن(' ') و امپرسند(&) و ... نداری!!!
نقل قول: مشکل با ثبت زمان در دیتابیس
متاسفانه باز هم همون error رو داد!!!
نقل قول: مشکل با ثبت زمان در دیتابیس
یعنی هیچ کدوم از دوستان راه حل این مشکل منو نمیدونه؟
نقل قول: مشکل با ثبت زمان در دیتابیس
دوست عزیز شما هنگام طراحی بانگ و فیلد نامگزاری فیلدها رو با یک سری از کلمات اساسی برنامه نویسی و ویندوز خودداری کنید مثلا نام فیلدتون رو time یا Date نزارید بزارید مثلا stime یا sdate
مشکل شما اینه
اسم فیلدتون رو از time به مثلا mytime بزارید نوعش رو هم فرقی نداره میتونید datetime یا استرینگ انتخاب کنید
نقل قول: مشکل با ثبت زمان در دیتابیس
نقل قول:
نوشته شده توسط
ali_md110
دوست عزیز شما هنگام طراحی بانگ و فیلد نامگزاری فیلدها رو با یک سری از کلمات اساسی برنامه نویسی و ویندوز خودداری کنید مثلا نام فیلدتون رو time یا Date نزارید بزارید مثلا stime یا sdate
مشکل شما اینه
اسم فیلدتون رو از time به مثلا mytime بزارید نوعش رو هم فرقی نداره میتونید datetime یا استرینگ انتخاب کنید
سلام شما در کل به نکته خوبي اشاره کرديد .
و اميدوارم که مشکله دوستمون با اين تغيير حل شه ، اما فکر نميکنم !
ولي يه مطلبي که شايد به استاندارد کردن Quaryها کمک کنه و از مشکلات بيان شده جلوگيري کنه اينه که بهتره اسم Table ، Owner يا از اين دست رو داخل [] قرار بديم
نقل قول: مشکل با ثبت زمان در دیتابیس
سلام ...
دوست عزیز شما کوئری تونو اول تست کنید اگر جواب داد بزارید توی برنامه اصلی ...
در پنجره server Explorer هم میتونی اونو تست کنی ...
نقل قول: مشکل با ثبت زمان در دیتابیس
(مشکل حل شد)
از هر سه شما دوستان ممنون
اول با راهنمایی kablayi کوئری گرفتم دیدم اسم فیلدها رو توی [] گذاشته رسیدم به نتیجه Dariuosh رسیدم
با این تفاسیر حرف ali_md110 هم درست باید باشه(البته تست نکردم)