View Full Version : مشكل در برنامه
s.k711
دوشنبه 22 مهر 1387, 15:36 عصر
سلام.خسته نباشيد.
من تازه با SQL server 2000 شروع به كار كرده ام و اين برنامه را از روي يك كتاب اموزشي نوشته ام اما وقتي چند بار كه ميخوام ويرايش كنم و دكمه save را ميزنم Error ميده. ميشه راهنمايي كنيد ايراد كارم كجاست. ( احتمالا توي sintax يكي از دستورات sql ايرادي وجود داره اما نميتونم بفهمم كجاست:عصبانی:)
در واقع ميخوام مثلا چند تا از ركوردها را ويرايش كنم ، يكي از Textbox هايي كه جلوي Label ها قرار داره را مقدارش را تغيير ميدم ،Error ميده؛ اگه چند بار بخوام اينكار را بكنم ،Error ميده.
فكر ميكنيد اشكال برنامه كجاست؟:متفکر:
لطفا راهنمايي بفرماييد.
درضمن vb.net2005 استفاده شده است.
ممنون:لبخندساده:
baran_mehr
دوشنبه 22 مهر 1387, 16:20 عصر
سلام داداشی خوب حداقل جدول های خودت رو هم میزاشتی تا بتونیم ببینیم.
اما من تو کداهات که نگاه کدم چند تا نکته دیم که گفتم بهت بگم .اگر دوست داشتی.
اولی این بود شما برای نوع جنسیت دوتا دستور Insert امنجام داده بودید خوب میتونید بالای دستوری یک If بزارین که اگر تیک خورده بود یعنی مثلا 1 و در غیر اینصورت 0 و مقدارشو تو یک متغیر بزارین و به عنوان پارامتر استفاده کنین.
دومیش چرا دستور Update رو هم مثلا Insert انجام نمیدید. منظورم اینکه به همون سبک Insert کدشو بنویسید.
به هر حال بهتره که دیتابیستون رو هم بزارید تات دوستانی که میخواین برنامتون رو ببینند حداقل بتونن اجراش کنن
s.k711
دوشنبه 22 مهر 1387, 17:17 عصر
به هر حال بهتره که دیتابیستون رو هم بزارید تات دوستانی که میخواین برنامتون رو ببینند حداقل بتونن اجراش کنن
سلام دوست عزيز خيلي ممنون از راهنماييهاتون.:لبخندساده:
اما من Backup جدوالهايم را گذاشته ام. با اسم( فكركنم) st.bak فقط لازم Restore كنيد.
بازهم توي ضميمه گذاشتم.
baran_mehr
دوشنبه 22 مهر 1387, 17:38 عصر
میشه فایل MDF رو بزارین.
اخه من نمیدونم این فایلی که گذاشتید رو چطور باید به اسکیوال اضافه کنم؟؟ نمیدونم شما چطور این کار رو میکنید. اگه میشه فایل دیتابیسش رو بزارین(MDF) یا بگید چطور باید این فایل رو به دیتابیس اضافه کنم.
baran_mehr
دوشنبه 22 مهر 1387, 18:03 عصر
داداش گلم برای اینکه دیتابیس رو بتونی کپی کنی اول باید اسکیوال رو STOP کنی و بعد دیتابیس رو از مسیر مثل این کپی کنی(C:\Program Files\Microsoft SQL Server\MSSQL\Data)
برای هر دیتابیس دوتا فایل وجود داره که مثلا data.log و data.mdf
اونها رو باید بزاری تا بتونیم جدولهاتو ببینیم.
s.k711
سه شنبه 23 مهر 1387, 10:08 صبح
داداش گلم برای اینکه دیتابیس رو بتونی کپی کنی اول باید اسکیوال رو STOP کنی و بعد دیتابیس رو از مسیر مثل این کپی کنی(C:\Program Files\Microsoft SQL Server\MSSQL\Data)
برای هر دیتابیس دوتا فایل وجود داره که مثلا data.log و data.mdf
اونها رو باید بزاری تا بتونیم جدولهاتو ببینیم.
سلام.خيلي ممنون از توجهتون.:لبخندساده:
نميدونم اين ضميمه1 منظورتون است يا نه؟
اما براي restor كردن پايگاه داده بايد در محيط Enterprise manager كه وارد شدين عمليات
http://barnamenevis.org/forum/showthread.php?p=613837#post613837
را اجرا كنيد.
اميدوارم مفيد واقع شود :لبخندساده:
لطفا در مورد اشكالم هم راهنمايي كنيد كه چكار كنم تا رفع شود.
ممنون.:لبخندساده::لبخندساده :
baran_mehr
سه شنبه 23 مهر 1387, 17:06 عصر
سلام داداشی ممنون از اموزشی که گذاشته بودید.:قلب::تشویق:
اما این کار رو میکنم و در مرحله اخر پیغام زیر رو میدئه که معلوم نیست چرا اضافه نمیکنه.
دادشی اگه شما اون دوتا فایل رو بزارید خیلی سریعتر کارا انجام میشه:لبخندساده:
s.k711
سه شنبه 23 مهر 1387, 22:26 عصر
:اشتباه:سلام ببخشيد فكر كردم كه گذاشتم اما مثل اينكه يادم رفته.
s.k711
سه شنبه 23 مهر 1387, 22:40 عصر
quote=baran_mehr;614073]
اما این کار رو میکنم و در مرحله اخر پیغام زیر رو میدئه که معلوم نیست چرا اضافه نمیکنه.
[/quote]
سلام دوست عزيز.
اين پيغام يعني(همانطور كه ميدونين) شما در حال restore كردن پايگاه داده اي هستيد كه قبلا وجود داشته.
من مواقعي با اين پيغام مواجه شدم كه نام پايگاه داده هايم مثل هم بوده يعني اسم فايل بك اپ و هم پايگاه داد ه اي كه در محيط Enter.. وجود داشته. يك جاي كارتون ايراد داره كه فكر ميكنم يكي از مراحل را درست نرفتين :متفکر:(البته بخشيد:لبخندساده: شايد اموزش من ايراد داشته )
نميدونم.
baran_mehr
سه شنبه 23 مهر 1387, 23:22 عصر
سلام داداشی خوبی.
من برنامتو اجرا کردم و دکمه Save هم کار میکنه.
یه پیشنهاد دارم برات اونم تغییر تو نحوه ی کار کردن با دستورات هست اگه دوست داشتی و حاضر بودی بگو تا یک سری کد برات بزارم تا خیلی قابل فهم تر و راحت تر باشه برای انجام این اعمالی که میخوای تو برنامت بدی
baran_mehr
سه شنبه 23 مهر 1387, 23:53 عصر
داداشی به این فایل یه نگاهی کن:
s.k711
چهارشنبه 24 مهر 1387, 07:38 صبح
داداشی به این فایل یه نگاهی کن:
سلام خيلي ممنون از توجه و راهنماييتون، خيلي مفيد بود.:بوس::قلب::تشویق:
اما من خيلي با دستورا sql در برنامم مشكل دارم به عنوان مثال در اين پست.
http://barnamenevis.org/forum/showthread.php?t=126781
اگه لطف كنيدو اون كدهايي را كه گفتين بذارين، خيلي ممنون ميشم.:لبخندساده:
baran_mehr
چهارشنبه 24 مهر 1387, 08:28 صبح
داداشی خودتو خیلی درگیر میکنی با دستورات مثلا این یک نمونه دستوریه که استفاده کرده بودید تو برنامه ای که آدرسشو گذاشته بودید:
Dim str1, str2, str3, str4 As String
Dim str As String
Me.BindingContext(ds, "personnel").AddNew()
str1 = Val(TextBox1.Text)
str2 = Val(TextBox2.Text)
str3 = Val(RichTextBox1.Text)
str4 = Val(ComboBox1.SelectedText)
str = "Insert Into [personnel](" & "[name_family]," & _
"[phone]," & _
"[address]," & _
"[action_type]" & _
")VALUES('" & str1 & "','" & _
str2 & "','" & _
str3 & "','" & _
str4 & "')"
con.Open()
Dim cmd As New SqlCommand(str, con)
cmd.ExecuteNonQuery()
con.Close()
MsgBox("complete")
ds.Clear()
da.Fill(ds, "personnel")
con.Close()
حالا به این کد نگاه کن:
Dim cmd As New SqlCommand("Insert Into [personnel]([name_family],[phone],[address],[action_type])VALUES('" & TextBox1.Text & "','" & TextBox2.Text & "','" & RichTextBox1.Text & "','" & ComboBox1.SelectedText & "')", con)
cmd.ExecuteNonQuery()
MsgBox("complete")
da.Fill("personnel")
con.Close()
داداشی شما تو این برنامه ای که گذاشته بودید.یک سری متغییر رشته ای داشتید که مثلا مقدار
str2 = Val(TextBox2.Text) رو داخلش میریختین. val رشته رو به عدد تبدیل میکنه .یعنی شما مقدار رشته ای داخل Textbox رو به عدد تبدیل میکنید و بعد دوباره میریزید تو یه رشته !!!!!
baran_mehr
چهارشنبه 24 مهر 1387, 08:35 صبح
داداشی ما برای استفاده از جدول میتونیم مستقیم از جدول استفاده کنیم و یا اینکه از Dataset
وقتی از dataset استفاده میکنیم در واقع داریم اشاره میکنیم به مجموعه ی جدولهامون و بعد از اون نام جدول رو میاریم. پیشنهاد میکنم مستقیم با خود جدول کار کنی یعنی به جای اینکه اول دیتالیست رو صدا بزنی و بعد جدولت رو مشخص کنی خوب جدولت رو همون اول صدا بزن.
الان به نظرم تو خودت رو با کدهات کیج میکنی،کدهای خیلی ساده تر مثل کدی که بالا گذاشتم هست که درک اون هم خیلی بهتره.
هر کجای مشکل داشتی بگو داداشی.اگر هم میخوای کلا تو همین تایپیک نحوه ی اتصال و ورود و خروج و حذف و ویرایش رو بگم بهت.
s.k711
چهارشنبه 24 مهر 1387, 09:02 صبح
داداشی ما برای استفاده از جدول میتونیم مستقیم از جدول استفاده کنیم و یا اینکه از Dataset
وقتی از dataset استفاده میکنیم در واقع داریم اشاره میکنیم به مجموعه ی جدولهامون و بعد از اون نام جدول رو میاریم. پیشنهاد میکنم مستقیم با خود جدول کار کنی یعنی به جای اینکه اول دیتالیست رو صدا بزنی و بعد جدولت رو مشخص کنی خوب جدولت رو همون اول صدا بزن.
الان به نظرم تو خودت رو با کدهات کیج میکنی،کدهای خیلی ساده تر مثل کدی که بالا گذاشتم هست که درک اون هم خیلی بهتره.
هر کجای مشکل داشتی بگو داداشی.
سلام بازهم ممنون.
اگر هم میخوای کلا تو همین تایپیک نحوه ی اتصال و ورود و خروج و حذف و ویرایش رو بگم بهت
اگه ممكنه ممنون ميشم.چون واقعا كارم گير كرده. من همين كدها را استفاده كردم اما Error ميده. نميدونم چرا.:ناراحت:
از قسمت *** ايراد ميگيره.:عصبانی:
baran_mehr
چهارشنبه 24 مهر 1387, 09:24 صبح
Dim str As String
str = "Insert Into [seller](name_family,phone,address,action_type)values('" + TextBox1.Text + "','" + TextBox2.Text + "','" + RichTextBox1.Text + "','" + ComboBox2.SelectedText + "')"
con.Open()
**cmd.ExecuteNonQuery()**
con.Close()
MsgBox("complete")
داداش گلم اگر این کد کار کنه باید تعجب کنی!!!
شما یه رشته درست کردید که توش دستور Insert رو نوشتید.خوب!! حالا این رشته رو میخواین چی کار کنید؟؟
از این رشته باید به عنوان دستور Comman استفاده کنید و به اون بدید و کانکشنی که ساختید رو به متغیر Command مرتبط کنید.
اگر کمی صبر کنی یه نمونه برنامه برات میزارم
s.k711
چهارشنبه 24 مهر 1387, 09:59 صبح
سلام دوست عزيز.
اشكالي كه آخرين بار گرفتين را درست كردم اين Error را ميده.
همه فيلدهاي جدولم از نوع Nvarchar است.
baran_mehr
چهارشنبه 24 مهر 1387, 10:34 صبح
سلام داداشی.
به این نمونه برنامه نگاه کن:
s.k711
چهارشنبه 24 مهر 1387, 11:58 صبح
سلام دوست عزيز.
:تشویق:واقعا خيلي ممنون:قلب::لبخندساده: داشت اشكم را در مياورد(:گریه:).:لبخندساده:
ميدونيد اشكال كارم كجا بود . وقتي پايگاه داده شما را ديدم متوجه شدم شما همه فيلدهاتون را با اندازه 50 ذخيره كردين و من انها را با 4 يا 5 يا 8 ذخيره كرده بودم.وقتي اندازه فيلدام را 50 گذاشتم درست شد .
خيلي خيلي ممنون.:لبخندساده:
يك نفر به من گفته بود Length براي تعيين طول فيلدها را هرچقدر كه بگذاري ؛ تعداد كاراكتري كه ذخيره ميشه در حافظه برابر با 2 به توان اون عدديه كه تعيين كرديم.ايا اين حرف صحت داره؟
(همون قسمتي را گفتم كه توي عكس دورش را خط كشيدم.)
بازم ممنون.
:خجالت:ببخشيد يك خواهشي داشتم (اگه دوست دارين) ميشه Email تون را بدين تا هر موقع اشكال داشتم مزاحمتون بشم.:لبخندساده:
email من : s.k711@yahoo.com
s.k711
چهارشنبه 24 مهر 1387, 12:02 عصر
يك سوال ديگه حالا كه عدد پايينLength برابر با تعداد كاراكترهامون است چه جوري فيلد ادرس پايگاه داده ام را پركنم چون Richtextbox اين قابليت را دارد كه چندين جمله را بگيره چون از Richtextbox يكجاي ديگه براي توضيحات كاربر استفاده كرده ام حالا كه بيشتر از 50 كاراكتر نميشه ذخيره كرد چه كاركنم چون توضيحاتش ممكنه زياد باشه.
baran_mehr
چهارشنبه 24 مهر 1387, 12:58 عصر
خواهش میکنم عزیزم.
ایمل من:baran_mehr_7631@yahoo.com
فقط من خیلی اونو چک نمیکنم اخه هر تایپیکی که توی اون شرکت کردم و به اضای هر پست یک ایمیل برام فرستاده میشه که منو متوجه کنه برای همین زیاد به ایمل سر نمیزنم.اگر خواستی اف بزار چون یک روز در میون اونو چک میکنم و شاید هم زودتر.
برای گذاشتن متن طولانی تر هم میتونی نوع داده خودت رو عوض کنی مثلا text چون متن طولانی تری رو قبول میکنه و فکر کنم بهتر باشه
خوشحال میشم کمکی کنم.
s.k711
چهارشنبه 24 مهر 1387, 23:03 عصر
سلام دوست عزيز.:لبخندساده:
يك سوال ديگه برام پيش اومده و اون اينه.:متفکر:
كه چه جوري ميشه Bindingnavigator را فعال كرد من Bindingsource و Dataset استفاده كردم اما نميدونم چه جوري اون را فعال كنم و از دكمه هاي> يا < ,... استفاده كنم. عكس ران شدش را گذاشتم .
baran_mehr
پنج شنبه 25 مهر 1387, 00:33 صبح
سلام داداشی.
برای رفتن به رکورد بعدی و قبلی میتونی از کدهای زیر استفاده کنی:
رفتن به رکورد بعدی:
me.bindingcontext(dataset11,"جدول").position=me.bindingcontext(dataset11,"جدول").position+1
رفتن به رکورد قبلی:
me.bindingcontext(dataset11,"جدول").position=me.bindingcontext(dataset11,"جدول").position-1
s.k711
شنبه 27 مهر 1387, 19:14 عصر
سلام دوست عزيز.
يك جاي ديگه برام سوال پيش اومده ؛ لطفا توجه كنيد:
چند روز پيش يك سورس دفترچه تلفن را از انجمن دانلود كردم. وقتي داشتم كدهاش را بررسي ميكردم به كدي كه در ضميمه است برخوردم. اومدم براي Textbox هاي خودم هم پياده سازيش كنم كه نتونستم تعريف KeyCahr :متفکر:را در برنامه دفترچه تلفن پيدا كنم به نظرتون براي اينكه اطلاعات وارد شده در Textbox فقط عدد باشد بايد چه كاركنم.
ممنون:لبخندساده:
baran_mehr
شنبه 27 مهر 1387, 23:03 عصر
سلام داداشی نازم.خوبی؟
If (Char.IsNumber(e.KeyChar) <> True) Then
e.Handled = True
End If
داداشی keychar کاراکتر کلید زده شده هست.
و کد بالا میگه اگر کاراکتر زده شده عدد نبود اونو برسی نکنه(نادیده بگیره)
راستی کد بالا رو توی رویداد KeyPress شئ textbox خودت بنویس.برای اینکه فقط عدد بگیره
شاد باشی گلم
s.k711
یک شنبه 28 مهر 1387, 09:19 صبح
سلام داداشی نازم.خوبی؟
If (Char.IsNumber(e.KeyChar) <> True) Then
e.Handled = True
End If
داداشی keychar کاراکتر کلید زده شده هست.
و کد بالا میگه اگر کاراکتر زده شده عدد نبود اونو برسی نکنه(نادیده بگیره)
راستی کد بالا رو توی رویداد KeyPress شئ textbox خودت بنویس.برای اینکه فقط عدد بگیره
شاد باشی گلم
سلام ممنون از توجهتون.:قلب:
اما من وقتي اين كد را مينويسم Vb.net ، Error ميده. ميگه Keychar تعريف نشده. ايا نياز به تعريف كتابخانه خاصي داره. اگه داره ميشه برام بنويسين.
در ضمن يك سوال خيلي مهم ديگه ؛ چه جوري عكسرا توي sqlserver 2000 ذخيره ميكنند البته فيلد مورد نظرم را بانوع Varbinary درست كرده ام.
همه جا گفتن و محبت كردند نمونه كد گذاشتن اما متاسفانه براي من كه تازه كارم مشكله.:ناراحت:
ممنون.:لبخندساده:
baran_mehr
یک شنبه 28 مهر 1387, 10:53 صبح
سلام داداشی:بوس:.نه هیچی نمیخواد فقط باید تو رویدادی که میخوای بنویسی.نمونه برنامه رو برات گذاشتم.
داداشی منم تو قرار دادن عکس تو دیتابیس مشکل دارم.دوستان پست زیاد گذاشتن در رابطه بای این موضوع اما من از هیچکدومشون نتیجه ای نگرفتم. حتی خودم هم سوال کردم اما جواب نداد متاسفانه.
نازم اگه به جواب رسیدم تو رو هم خبر میکنم و برنامه رو برات میزارم.
علیرضا مداح
یک شنبه 28 مهر 1387, 11:11 صبح
سلام دوست عزیز،
تاپیک قفل شد ، لطفا" در هر تاپیک "تنها یک سوال" مطرح نمایید ،/
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.