PDA

View Full Version : سوال: سوال های آماتوری برنامه نویسی در VB.NET



hamidreza66
پنج شنبه 24 تیر 1389, 22:19 عصر
سلام
قبل اینکه این تاپیک رو ایجاد کنم چندین بار دنبال مطلبی که میخواستم بدونم گشتم اما یا پیدا نکردم یا به ذهنم نرسید.
این تاپیک رو با این موضوع ایجاد کرد برنامه نویس های آماتور مثل منسوالات کوچیک - پیش پا افتاده و آماتوری خودشون رو اینجا مطرح کنند و بیخودی با زدن تاپیک فروم رو شلوغ نکنند.

hamidreza66
پنج شنبه 24 تیر 1389, 22:24 عصر
سوال اولم اینه،

قصد دارم برنامه ای بنویسم که لازمه چند تا فرم داشته باشه، مثلاً فرم اول اطلاعات رو از کاربر بگیره و وقتی ذخیره کرد بره به فرمی که اون اطلاعات رو نشون میده. نوشتن جداگانه هر دو فرم آسونه اما اینکه چطور از این فرم برم به اون فرم رو میخوام بدونم حرفه ای ها چه کاری میکنند

خودم چند روش پیدا کردم اما دنبال روش اصولی اون هستم
روش اول اینکه یه فرم رو show و hide کنم
روش دوم اینکه فقط یک فرم داشته باشم و داخل فرم از پنل استفاده کنم (که همینکارو کردم اما برام مشکل ایجاد شده تو تکستباکس)

نمیخوام با زدن دکمه ذخیره، صفحه غیب بشه و یکی دیگه ظاهر بشه. (روش اولی که گفتم)

MehdiLiver
پنج شنبه 24 تیر 1389, 22:53 عصر
سوال اولم اینه،

قصد دارم برنامه ای بنویسم که لازمه چند تا فرم داشته باشه، مثلاً فرم اول اطلاعات رو از کاربر بگیره و وقتی ذخیره کرد بره به فرمی که اون اطلاعات رو نشون میده. نوشتن جداگانه هر دو فرم آسونه اما اینکه چطور از این فرم برم به اون فرم رو میخوام بدونم حرفه ای ها چه کاری میکنند

خودم چند روش پیدا کردم اما دنبال روش اصولی اون هستم
روش اول اینکه یه فرم رو show و hide کنم
روش دوم اینکه فقط یک فرم داشته باشم و داخل فرم از پنل استفاده کنم (که همینکارو کردم اما برام مشکل ایجاد شده تو تکستباکس)

نمیخوام با زدن دکمه ذخیره، صفحه غیب بشه و یکی دیگه ظاهر بشه. (روش اولی که گفتم)

منظور از ذخیره اطلاعات به چه صورت ؟
مجازی؟
دیتا بیس؟
رجیستری؟
نوت ؟
.....

hamidreza66
جمعه 25 تیر 1389, 14:11 عصر
منظور از ذخیره اطلاعات به چه صورت ؟
مجازی؟
دیتا بیس؟
رجیستری؟
نوت ؟
.....

نوع ذخیره مهم نیست، البته من دارم با sqlserver کار میکنم
چطور بین فرم ها حرکت کنم؟ یا اصلاً چند تا فرم لازمه؟ من فعلاً بحای چند تا فرم دارم از چند تا پنل استفاده میکنم ولی به مشکل بر خوردم

محسن شامحمدی
جمعه 25 تیر 1389, 21:49 عصر
می تونی با استفاده از متغیرهای public که درون ماژول ها تعریف می شن اطلاعات رو رد و بدل کنی

hamidreza66
شنبه 26 تیر 1389, 00:03 صبح
می تونی با استفاده از متغیرهای public که درون ماژول ها تعریف می شن اطلاعات رو رد و بدل کنی

میشه کمی بیشتر راهنمایی کنی؟ یه کد نمونه مثلاً

mahdi1373
شنبه 26 تیر 1389, 13:15 عصر
سلام،
توی solution explorer روی پروژه راست کلیک کن. add>module.
برای تعریف متغییر عمومی باید به این صورت بنویسی:

Public var As typevar-> نام متغییر
type-> نوع متغییر
حالا این متغییر توی همه فرم ها قابل دسترسیه.

hamidreza66
چهارشنبه 06 مرداد 1389, 00:16 صبح
گاهی دارم برنامه های اماتوری مینویسم به حرف Me. بر میخورم
مثلاً


Me.richTextBox1.Text

این کلمه چه تاثیری داره؟ من یه بار حذفش کردم ولی تغییری تو عملکرد ندیدم

ali_najari
چهارشنبه 06 مرداد 1389, 01:02 صبح
کلمه Me رو که بنویسی تمام کنترلهای روی فرم و Option های موجود را برای راحتی کار برای برنامه نویس میاره!

Alghoochi
چهارشنبه 06 مرداد 1389, 14:45 عصر
تو vb6 می شد به جای Me از اسم فرم استفاده کرد ولی توی VB.Net حتما باید داخل خود متغیر با Me اونو فراخوانی کنی. Me به شیئ که کد نویسی داخل اون انجام میشه اشاره می کنه. مثلا داخل کلاس ها به کلاس و داخل فرم به فرم اشاره می کنه

nasim bahari
چهارشنبه 06 مرداد 1389, 19:23 عصر
گاهی دارم برنامه های اماتوری مینویسم به حرف Me. بر میخورم
مثلاً


Me.richTextBox1.Text
این کلمه چه تاثیری داره؟ من یه بار حذفش کردم ولی تغییری تو عملکرد ندیدم

شما برای دسترسی به کنترل های form2 به این صورت عمل می کنید

form2.text1.text="sssddddsdds

پس اسم فرم رو قبل نام کنترل آوردین و البته نمی خوام حالا شی گرایی رو توضیح بدم ولی بدون که برای فرمی که درون اون قرار داری نمی تونی از نام فرم استفاده کنی و باید از Me استفاده کنی که مقدار پیش فرض است و اگه شما اون رو نزارین همان فرم در نظر گرفته می شه......

البته این کلمه کلیدی واسه سرکار گذاشتن ما نیست بلکه کاربرد هایی هم داره که فکر می کنم نیازی به توضیح اون ها نباشه.....

موفق باشید

nasim bahari
چهارشنبه 06 مرداد 1389, 19:25 عصر
سوال اولم اینه،

قصد دارم برنامه ای بنویسم که لازمه چند تا فرم داشته باشه، مثلاً فرم اول اطلاعات رو از کاربر بگیره و وقتی ذخیره کرد بره به فرمی که اون اطلاعات رو نشون میده. نوشتن جداگانه هر دو فرم آسونه اما اینکه چطور از این فرم برم به اون فرم رو میخوام بدونم حرفه ای ها چه کاری میکنند

خودم چند روش پیدا کردم اما دنبال روش اصولی اون هستم
روش اول اینکه یه فرم رو show و hide کنم
روش دوم اینکه فقط یک فرم داشته باشم و داخل فرم از پنل استفاده کنم (که همینکارو کردم اما برام مشکل ایجاد شده تو تکستباکس)

نمیخوام با زدن دکمه ذخیره، صفحه غیب بشه و یکی دیگه ظاهر بشه. (روش اولی که گفتم)

شما برای استفاده از چند فرم باید از تکنیک فرم مادر و فرم های دختر استفاده کنید. که یک سری مزایایی داره مثل اینکه اگر فرم مادر بسته یا کوچک نمایی بشه فرم های دختر هم همین کار رو می کنند و یا فرم های دختر فقط در محیط فرم مادر اجرا می شوند از اون خارج نمی شوند و .....

موفق باشید

hamidreza66
جمعه 08 مرداد 1389, 12:17 عصر
از همگی تشکر میکنم واقعاً جوابها عالی بودن، خیلی گشتم ولی جایی اینطوری جواب پیدا نکردم.

3تا سوال دارم
1- دارم با پایگاه داده Access کار میکنم، و همچین کوئری نوشتم که ایراد میگیره:

select * from myTB where id = '" + id.ToString()در حالی که اگه کوئری به صورت زیر باشه مشکلی نداره

select * from myTB where id = '3' id از نوع integer هست
روش هایی هست که مشکلمو حل کنم اما من سریعترین و ساده ترین راه رو میخوام یاد بگیرم، مثلاً کد زیر جواب داده:

Dim comand As New SqlCommand("select * from myTB where id = @id", connection)
comand.Parameters.Add("@id", SqlDbType.Int).Value = id2- چرا جلو بعضی تابع ها () داریم ولی جلو بعضی ها نه، چه تاثیری در جواب داره؟
3- برای صدا کردن تابع ها فرقی میکنه از Call استفاده کنیم یا نه؟ در هر صورت ویژال بیسیک خطا نمیگیره!

FastCode
جمعه 08 مرداد 1389, 21:51 عصر
1.
کدی که ایراد داره یدونه ' کم داره.
ولی کدی که گفتید سخته روش درسته.کد اول رو میشه تو ۲ دقیقه هک کرد.
2.برای اینه که بین property ها و method ها وقتی اسم یکسان دارن تفاوت ایجاد بشه.(امکان اتفاق افتادنش خیلی کمه.شما فکر کن زیر صفر)
یه علت دیگه که فکر میکنم مهمتره اینه که کدهای vb6 یتونن با تغییرات کمتر تبدیل به .net بشن.
۳.call هم دقیقاً همین کار رو میکنه.

mahdi1373
جمعه 08 مرداد 1389, 22:41 عصر
select * from myTB where id = '" + id.ToString() + "'

ali_najari
جمعه 08 مرداد 1389, 22:52 عصر
شما هم یه " کم گذاشید
صحیح ترش اینه

"select * from myTB where id = '" & id.ToString & "'"

mahdi1373
شنبه 09 مرداد 1389, 00:20 صبح
شما هم یه " کم گذاشید
صحیح ترش اینه

"select * from myTB where id = '" & id.ToString & "'"
اولا یکی نه و 2 تا.
دوما وقتی می گه

select * from myTB where id = '3'
درست کار می کنه، یعنی عقلش می رسه که اول و آخرش دو تا " اضافه کنه

hamidreza66
شنبه 09 مرداد 1389, 01:02 صبح
راستش کد اصلی من این بود

select * from myTB where id = '" + id.ToString() + "' ORDER BY id DESCحواسم نبود که ای دی منحصر به فرده واسه همین تو این پیج 4کلمه اخر رو خذف کردم که یه ' اضافه موند یا کم

فقط کوئری رو درنظر گرفتم بدون " اول و اخرش

hamidreza66
شنبه 09 مرداد 1389, 01:05 صبح
من برنامه تحت وب نمینویسم، اهمیت امنیتی برنامه مهمه؟

FastCode
شنبه 09 مرداد 1389, 17:33 عصر
من برنامه تحت وب نمینویسم، اهمیت امنیتی برنامه مهمه؟
مگه هک فقط برای وبه؟
۳ سوت دیتابیست رو خالی میکنم.یه جوری که شش ماه دوباره وارد کردن اطلاعات طول بکشه.

nasim bahari
شنبه 09 مرداد 1389, 18:19 عصر
از همگی تشکر میکنم واقعاً جوابها عالی بودن، خیلی گشتم ولی جایی اینطوری جواب پیدا نکردم.

3تا سوال دارم
1- دارم با پایگاه داده Access کار میکنم، و همچین کوئری نوشتم که ایراد میگیره:

select * from myTB where id = '" + id.ToString()در حالی که اگه کوئری به صورت زیر باشه مشکلی نداره

select * from myTB where id = '3' id از نوع integer هست
روش هایی هست که مشکلمو حل کنم اما من سریعترین و ساده ترین راه رو میخوام یاد بگیرم، مثلاً کد زیر جواب داده:

Dim comand As New SqlCommand("select * from myTB where id = @id", connection)
comand.Parameters.Add("@id", SqlDbType.Int).Value = id2- چرا جلو بعضی تابع ها () داریم ولی جلو بعضی ها نه، چه تاثیری در جواب داره؟
3- برای صدا کردن تابع ها فرقی میکنه از Call استفاده کنیم یا نه؟ در هر صورت ویژال بیسیک خطا نمیگیره!

سوال اول رو که دوستان پاسخ دادن اما در مورد سوال دوم و سوم........

سوال دوم......بعضی از توابع یا آرگومان ندارند و یا آرگومان های اونا اختیاری هستش . بنابراین نیازی به گذاشتن پرانتز نیست......

سوال سوم.....همانطور که می دانید بیشتر کاربران VB.Net قبلاً با VB6 و نسخه های قدیمی تر شروع کرده و کار کرده اند و با ورود نسخه های بالاتر به شروع به کار با آنها نموده اند و این هم رو می دونید که یه سری از دستورات به صورت منطقی از دات نت حذف شده اند و دیگر کاربرد ندارند که یکی از اونها همین کلمه کلیدی Call هستش . ولی چون کاربران قدیمی در استفاده از این دستورات عادت کرده اند . پس دات نت هم اونها رو به صورت فیزیکی حذف نکرده تا کاربران قدیمی به مشکل برنخورند...آخه ظاهراً ترک عادت موجب مرضه !

موفق و بهاری باشید

Shahram_Shobeiri
یک شنبه 10 مرداد 1389, 08:45 صبح
مگه هک فقط برای وبه؟
۳ سوت دیتابیست رو خالی میکنم.یه جوری که شش ماه دوباره وارد کردن اطلاعات طول بکشه.
می خوام بدونم که چطوری تو 3 سوت دیتا بیس رو خالی می کنید. اگه ممکنه روش کار رو توضیح بدید. البته فرض کنید که برنامه نویس اونقدر بدونه که باید رشته های ورودی توسط کاربر رو از لحاظ اجرایی بودن و موارد دیگه چک کنه.
اگه میشه روش هک کردن رو توضیح بدید.

hamidreza66
یک شنبه 10 مرداد 1389, 19:46 عصر
از همگی تشکر میکنم که تو بحث ها وجوابها شرکت کردند.

خدا رو شکر برنامه ای که دارم مینویسم برنامه خاصی نیست و جوریه که تو هر کامپیوتر یکی قرار میگیره. یعنی اگه هکر کنه، خودشو هک کرده.
ولی در کل از حالا ترجیه میدم از روش دومی که حودم گفتم استفاده کنم.
ولی یه سوال منو کسی جواب نداد، هرچند که دیگه از اون روش استفاده نمیکنم بد نیست بدونم مشکل کجا بود.

راستش کد اصلی من این بود

select * from myTB where id = '" + id.ToString() + "' ORDER BY id DESCحواسم نبود که ای دی منحصر به فرده واسه همین تو این پیج 4کلمه اخر رو خذف کردم که یه ' اضافه موند یا کم

فقط کوئری رو درنظر گرفتم بدون " اول و اخرش
حالا مشکل این کد کجاست؟ اینه که جواب نمیده

FastCode
یک شنبه 10 مرداد 1389, 20:13 عصر
می خوام بدونم که چطوری تو 3 سوت دیتا بیس رو خالی می کنید. اگه ممکنه روش کار رو توضیح بدید. البته فرض کنید که برنامه نویس اونقدر بدونه که باید رشته های ورودی توسط کاربر رو از لحاظ اجرایی بودن و موارد دیگه چک کنه.
اگه میشه روش هک کردن رو توضیح بدید.

اینها رو توی گوگل جست و جو کن:
How to drop all constraints in T-SQL
how to disable all constraints in T-SQL
how to run a query against all tables in T-SQL
این بالایی روش یک بود.
روش دو که یه مقدار قابل ریکاوریه اینه:
DROP DATABASE نام دیتابیس.
به همین راحتی.
البته فقط در حالت single user جواب میده برای حلش این رو جست و جو کن.
how to set Database in single user mode in T-SQL

Shahram_Shobeiri
دوشنبه 11 مرداد 1389, 13:53 عصر
بنده گفتم


فرض کنید که برنامه نویس اونقدر بدونه که باید رشته های ورودی توسط کاربر رو از لحاظ اجرایی بودن و موارد دیگه چک کنه.
برنامه نویس چک می کنه که هیچ کلمه قابل اجرایی مثل کلمات (DELETE, DROP, INSERT, UPDATE, ...) تو رشته ارسالی نباشه و اگه باشه اونها رو بی اثر می کنه. حالا با این وجود می خوام بدونم که این روش همچنان نا امنه؟چرا؟
در ضمن لازمه که بگم من از این روش برای تعامل با db استفاده نمی کنم و از همون روش بر مبنای پارامتر استفاده می کنم. اما سئوالم (فکر می کنم) که باعث بازتر شدن بحث بشه. و در ضمن این مورد (روش های پارامتری) در همه زبان های دیگه وجود نداره اما با مواردی مثل mysql_real_escape_string() در php مشکل امنیتی ایجاد نمیشه.

FastCode
دوشنبه 11 مرداد 1389, 18:36 عصر
بنده گفتم
برنامه نویس چک می کنه که هیچ کلمه قابل اجرایی مثل کلمات (DELETE, DROP, INSERT, UPDATE, ...) تو رشته ارسالی نباشه و اگه باشه اونها رو بی اثر می کنه. حالا با این وجود می خوام بدونم که این روش همچنان نا امنه؟چرا؟
در ضمن لازمه که بگم من از این روش برای تعامل با db استفاده نمی کنم و از همون روش بر مبنای پارامتر استفاده می کنم. اما سئوالم (فکر می کنم) که باعث بازتر شدن بحث بشه. و در ضمن این مورد (روش های پارامتری) در همه زبان های دیگه وجود نداره اما با مواردی مثل mysql_real_escape_string() در php مشکل امنیتی ایجاد نمیشه.
مگه همین ۳ تا دستوره؟
فکر کن از sp_exec و "DE" +"LE" + "TE" استفاده کنم.:شیطان:
به تعداد افراد روی کره زمین راه هست.

Shahram_Shobeiri
سه شنبه 12 مرداد 1389, 08:15 صبح
به سه نقطه آخر اون سه چهارتا دستور توجه نفرمودید. درسته که سه دستور نیست ولی تعداد اونها محدوده و درسته که به تعداد برنامه نویسان روی کره زمین راه هست ولی این راه ها باید بوسیله همین کلمات کلیدی محدود پیاده بشوند. این روش تخریبی که می فرمایید (ارسال کد اجرایی به جای دیتا) کاملاً قابل کنترله. اگه راه دیگه ای به نظرتون میرسه بفرمایید.

hamidreza66
سه شنبه 12 مرداد 1389, 12:13 عصر
کسی جواب منو با در رابطه با این که چرا کد پایینی مشکل داره نداد.

"select * from myTB where id = '" + id.ToString() + "' ORDER BY id DESC"
اما بعد کلی ور رفتن فهمیدم مشکلش کجاست

"select * from myTB where id = " + id.ToString() + " ORDER BY id DESC"
تک کوتیشن های دو طرفشو حذف کردم. حالا سوام اینه مگه ربطی داره؟ البته من الان دارم با اکسس کار میکنم هااااا

hero4000
پنج شنبه 14 مرداد 1389, 08:59 صبح
خوب دوست عزيز فيلد Id شما از نوع عدد بوده ولي شما متن مي فرستادين واسه همين جواب نمي داده

damas90
پنج شنبه 14 مرداد 1389, 16:35 عصر
با عرض سلام وخسته نباشيد خدمت شما

من يك بانك اطلاعاتي با اكس درست كردم در خصوص اطلاعات كارمندها كه شامل نام وفاميل و... است.
حالا مخوام برنامه اي تو وبي براش بنويسم در خصوص حذف واضافه كردن يك كارمند.

حالا چه كدي بايد براي اين كار بنويسم ميشه كمكم كنيد ممنون ميشم

nasim bahari
پنج شنبه 14 مرداد 1389, 16:51 عصر
خب اینکه معلومه برای اضافه باید از Insert و برای حذف از Delete استفاده کنی!

بیشتر توضیح بده که دقیقاً مشکلت کجای برنامه هستش ....آخه سوالت خیلی کلیه...

موفق باشی.....

damas90
پنج شنبه 14 مرداد 1389, 17:28 عصر
خب اینکه معلومه برای اضافه باید از Insert و برای حذف از Delete استفاده کنی!

بیشتر توضیح بده که دقیقاً مشکلت کجای برنامه هستش ....آخه سوالت خیلی کلیه...

موفق باشی.....

اگر بانك ما شامل تو فيلد id , name , family باشد
حالا تو فرممون 3تا textbox براي هركدوم گذاشته باشيم چه كدي براي اضافه كردن به بانك لازمه ؟؟
همين كد كاملش رو ميخوام كه وقتي روي button كليك شد به بانك اضافه بشه همين

ممنون ميشم كمكم كنيد

Mani_rf
پنج شنبه 14 مرداد 1389, 18:38 عصر
اگر بانك ما شامل تو فيلد id , name , family باشد
حالا تو فرممون 3تا textbox براي هركدوم گذاشته باشيم چه كدي براي اضافه كردن به بانك لازمه ؟؟
همين كد كاملش رو ميخوام كه وقتي روي button كليك شد به بانك اضافه بشه همين

ممنون ميشم كمكم كنيد

روش های زیادی برای این کار هست، این یک روش فوری برای تعداد فیلد کم.

Dim Co As New SqlClient.SqlConnection("Data Source=PC-4;Integrated Security=SSPI;Initial Catalog=[Data Base Name]")
Dim Comand As New SqlClient.SqlCommand("insert into [Table Name] (ID,Name,Family) Values(" & TextBoxID.Text & ",'" & TextBoxName.Text & "','" & TextBoxFamily.Text & "')", Co)
Co.Open()
Comand.ExecuteNonQuery()
Co.Close()

در قسمت Connection String رشته مناسب را بگذار؛
در Table Name نام جدولی که در دیتابیس داری و به جای نام TextBox ها هم نام TextBox ها را.

damas90
پنج شنبه 14 مرداد 1389, 21:00 عصر
روش های زیادی برای این کار هست، این یک روش فوری برای تعداد فیلد کم.

Dim Co As New SqlClient.SqlConnection("Data Source=PC-4;Integrated Security=SSPI;Initial Catalog=[Data Base Name]")
Dim Comand As New SqlClient.SqlCommand("insert into [Table Name] (ID,Name,Family) Values(" & TextBoxID.Text & ",'" & TextBoxName.Text & "','" & TextBoxFamily.Text & "')", Co)
Co.Open()
Comand.
ExecuteNonQuery()
Co.Close()

در قسمت Connection String رشته مناسب را بگذار؛
در Table Name نام جدولی که در دیتابیس داری و به جای نام TextBox ها هم نام TextBox ها را.

ممنون از كمكتون
size كاربردش چيه؟؟
ارور ميده همش

salehbagheri
پنج شنبه 14 مرداد 1389, 22:26 عصر
size كاربردش چيه؟؟
ارور ميده همش
مشکلی در کد بود که رفع شد...

damas90
پنج شنبه 14 مرداد 1389, 22:35 عصر
يك سوال داشتم ميخواستم بدونم Microsoft Visual Studio 2008 با Microsoft Visual basic 6 چه فرقي ميكنه وآيا در دستورات باهم فرق دارن يا خير؟؟

اگر يكي كمكم كنه ممنون ميشم

salehbagheri
پنج شنبه 14 مرداد 1389, 22:38 عصر
چه فرقي ميكنه

دوست عزیز، زبان 11 سال پیش رو با الان مقایسه میکنید؟

بیشتر از 100 اختلاف فاحش میشه برای این دوعنوان کرد. اما به نظر من این مقایسه ها کار چندان جالبی نیست.

سعی کنید خودتون رو با تکنولوژی جدید وفق بدید و به ماقبل از اون فکری نکنید.

damas90
پنج شنبه 14 مرداد 1389, 23:42 عصر
دوست عزیز، زبان 11 سال پیش رو با الان مقایسه میکنید؟

بیشتر از 100 اختلاف فاحش میشه برای این دوعنوان کرد. اما به نظر من این مقایسه ها کار چندان جالبی نیست.

سعی کنید خودتون رو با تکنولوژی جدید وفق بدید و به ماقبل از اون فکری نکنید.

ميشه بگين الان كدام زبان بيشترين استفاده رو داره؟؟چون من از امروز شروع كردم به برنامه نويسي الان موندم تو سايت يكجانوشته vb6 يكجا نوشته vb.net خودم visual stdio دارم موندم كدومشو بالاخره ادامه بدم وكدوم بهتره وچه فرقهايي باهم دارنكاش يكي پيدا ميشد كامل برام توضيح ميداد كه من از صبح تو اين سايتم هرجاشو كه ميخونم بازم متوجه نشدمتو رو خدا يكي بياد منو چيز فهم كنه

salehbagheri
جمعه 15 مرداد 1389, 01:11 صبح
ببینید شما اول باید مشخص کنید که در چه حوزه ای میخواهید فعالیت کنید.

زبان های C#‎‎ و VB هم در ویندوز و هم در Web کاربرد دارند و معمولا بیشترین طرفدار را نیز دارند.

زبان ++C زبانی پیشرفته و کمی سطح پایین تر از دو زبان قبلی هست و حوزه فعالیت گسترده ای دارد و به همان مقدار نیز پیچیده تر و گسترده تر از دو زبان قبلی هست و استفاده از آن نیازمند آشنایی با بعضی چیزهای مهم سیستم می باشد.

زبان Delphi هم وجود داره که من زیاد باهاش آشنایی ندارم ولی به نظر من یه زبانی مابین C#‎‎ و ++C هست. (نه از لحاظ Syntax بلکه از لحاظ کاربرد)

زبان #F هم یه زبان تابعی هست و در مکانهای مناسب خود کاربرد دارد.

زبان VB6 هم یک نسخه قدیمی از VB می باشد که تحت دات نت نیست. بنابراین از بسیاری از امکانات دات نت محروم هست. این زبان دیگه نفس های اخرش رو داره میکشه!
...

با تشکر

damas90
جمعه 15 مرداد 1389, 12:51 عصر
سلام
يك سوال داشتم
براي صدا زدن يك فرم ديگر از چه كدي استفاده ميشود؟؟

damas90
جمعه 15 مرداد 1389, 12:53 عصر
آيا در ويژال استوديو براي اتصال دو فرم همانند اتصال جداول در اكسس relation نياز است يا خير؟؟

اگرممكنه كسي راهنماييم كنه ممنون ميشم

Reza1607
جمعه 15 مرداد 1389, 13:03 عصر
براي ارتباط با يك فرم ديگه از اين دستور زير استفاده كنيد


dim str as string=Form1.textbox1.text

كافي اسم فرم رو بنويسيد و براي دسترسي به كنترلها بعد از اسم فرم و گذاشتن يك نقطه به همه كنترل ها دسترسي داريد

damas90
جمعه 15 مرداد 1389, 13:05 عصر
براي ارتباط با يك فرم ديگه از اين دستور زير استفاده كنيد


dim str as string=Form1.textbox1.text

كافي اسم فرم رو بنويسيد و براي دسترسي به كنترلها بعد از اسم فرم و گذاشتن يك نقطه به همه كنترل ها دسترسي داريد
ممنونم
اما منظورم اين بود كه با كليك روي يك button فرم دوم باز بشه

ميتونيد كمكم كنيد؟؟

Saman_12
جمعه 15 مرداد 1389, 13:16 عصر
از این کد استفاده کنید :

Form2.Show

Reza1607
جمعه 15 مرداد 1389, 13:19 عصر
ببخشيد كه دير جواب دادم يك لحظه ارتباطم قطع شد

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Form2.show()
'or
'Form2.ShowDialog()
End Sub
اگه از show() استفاده كني مي توني همزمان رو هر دوتا فرم كنترل داشته باشي
ولي اگه از showdialog استفاده كني فرم 2 مياد رو ي فرم 1 و تا وقتي فرم 2 بسته نشه به فرم يك دسترسي نداري(منظور كنترل نداري)

damas90
جمعه 15 مرداد 1389, 13:23 عصر
از این کد استفاده کنید :

Form2.Show

خيلي ممنون از كمكتون
اگر خواسته باشيم فرم جديد بالا نياد چه كدي بايد نوشته بشه؟؟
منظورم اينكه روي همون فرم جاري بازبشه ودو فرم همزمان بازنباشه

Saman_12
جمعه 15 مرداد 1389, 13:29 عصر
میتونید توی FormLoad فورم 2 فورم 1 را هیدن کنید و در FormColding دو باره او نو نشون بدین!
به کد زیر دقت کنید :


Private Sub Form2_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
e.Cancel = True
Form1.Show()
e.Cancel = False
End Sub

Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Form1.Hide()
Me.Top = Form1.Top
Me.Left = Form1.Left

End Sub

Saman_12
جمعه 15 مرداد 1389, 14:06 عصر
شرمنده توی این مورد نمی تونم کمک کنم آخه :
من به طور کلی از پایگاه داده بدم میاد و به همین دلیل هم تا حالا تجربه کار کردن با اونو نداشتم.:لبخند:

damas90
جمعه 15 مرداد 1389, 14:13 عصر
سلام
كسي هست كمكم كنه؟؟
يك سوال داشتم
براي اضافه كردن يك ركورد به بانك اطلاعاتي اكسس چه كدي بايد نوشته بشه
فقط اطلاعات textbox1.text به id ي table1 خواسته باشيم اضافه بشه چه كدي بايد درقسمت click_button بايد نوشته بشه

دستتون درد نكنه

nasim bahari
جمعه 15 مرداد 1389, 14:52 عصر
سلام
كسي هست كمكم كنه؟؟
يك سوال داشتم
براي اضافه كردن يك ركورد به بانك اطلاعاتي اكسس چه كدي بايد نوشته بشه
فقط اطلاعات textbox1.text به id ي table1 خواسته باشيم اضافه بشه چه كدي بايد درقسمت click_button بايد نوشته بشه

دستتون درد نكنه



me.Table1Tableadaptor.insert(val(textbox1.text))

damas90
جمعه 15 مرداد 1389, 18:48 عصر
me.Table1Tableadaptor.insert(val(textbox1.text))



اين كد كه اجرا نميشه ارور مياره

nasim bahari
جمعه 15 مرداد 1389, 19:56 عصر
اين كد كه اجرا نميشه ارور مياره


کد بالا برای Insert درون جدولی بنام Tabel1 که دارای آداپتوری بنام tabbel1tabeladaptor هستش و البته اون جدول فقط دارای یه فیلد ( id ) اون هم از نوع Integer هست.

در واقع کد بالا یه شبه کد برای کمک به شما بود و نه یه کد واقعی......آخه من که نام tabelAdaptor و همچنین تعداد فیلد های جدول مورد نظر و نوع اونها رو نمی دونم که کد واقعی برای شما بزارم......

دوست عزیز ....شما برای اینکه برنامه های مبتنی بر پایگاه داده بنویسید ....ابتدا باید مفاهیم پایگاه داده و همچنین اطلاعات اولیه از نحوه استفاده بانک های اطلاعاتی در VB رو بدونین.....که فقط کافیه مواردی که مورد نظرتون هستش رو در همین سایت سرچ کنید تا به مقصودتون برسین.........

موفق باشید....

Mani_rf
شنبه 16 مرداد 1389, 10:30 صبح
اين كد كه اجرا نميشه ارور مياره

از همون کدی که برای گذاشته بودم می تونی برای هر بانک اطلاعاتی استفاده کنی، فقط چند تفاوت کوچک. برای استفاده آن در اکسس :
1- Connection String را تغییر بده.
2- همه SqlClient ها را به OleDb تغییر بده.
مابقیش یکیه.

damas90
شنبه 16 مرداد 1389, 12:24 عصر
روش های زیادی برای این کار هست، این یک روش فوری برای تعداد فیلد کم.

Dim Co As New SqlClient.SqlConnection("Data Source=PC-4;Integrated Security=SSPI;Initial Catalog=[Data Base Name]")
Dim Comand As New SqlClient.SqlCommand("insert into [Table Name] (ID,Name,Family) Values(" & TextBoxID.Text & ",'" & TextBoxName.Text & "','" & TextBoxFamily.Text & "')", Co)
Co.Open()
Comand.ExecuteNonQuery()
Co.Close()

در قسمت Connection String رشته مناسب را بگذار؛
در Table Name نام جدولی که در دیتابیس داری و به جای نام TextBox ها هم نام TextBox ها را.

اين الان اين كدهاي پايين اشكالشون كجاست؟؟
هركار ميكنم نه ارور مياره ونه اجرا ميشه
ميشه كمكم كنين؟؟

PublicClass Form1
Dim Co AsNew OleDb.OleDbConnection("Data Source=Database1.accdb;Provider=Microsoft.ACE.OLED B.12.0;Initial Catalog=[DataBase1dataset]")
Dim Comand AsNew OleDb.OleDbCommand("insert into [Table1] (sho_persenli,Name,Family) Values(" & TextBoxid.Text & ",'" & TextBoxname.Text & "','" & TextBoxfamily.Text & "')", Co)
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Co.Open()
Comand.ExecuteNonQuery()
Co.Close()
EndSub
EndClass

damas90
دوشنبه 18 مرداد 1389, 01:03 صبح
Private ObjCon As New OleDb.OleDbConnection
Private ObjCom As New OleDb.OleDbCommand
Dim cs As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\damas90\My Documents\Bank.mdb"

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ObjCon.ConnectionString = cs
ObjCon.Open()
ObjCom.Connection = ObjCon
ObjCom.CommandText = "insert Into Table1(ID,name,family) Values('" & TextBox1.Text & " ' ,' " & TextBox2.Text & " ' , ' " & TextBox3.Text & " ')"

ObjCom.ExecuteNonQuery()
End Sub

با عرض سلام
يك سوال پيش پا افتاده داشتم ميخواستم بدونم تو قطعه كد بالا وقتي يكبار اطلاعات باهمين فرم وارده ميشه براي دفعه دوم كه ميخوايم وارد كنيم ارور مياره !
سوالات:
1.كدي هست كه كه اين نقص رو برطرف كنه؟؟
2.كدي هست كه اگر اطلاعات تكراري بود پيغامي بياره؟؟

كسي هست كمكم كنه ممنون ميشم

Mani_rf
دوشنبه 18 مرداد 1389, 08:17 صبح
Private ObjCon AsNew OleDb.OleDbConnection

Private ObjCom AsNew OleDb.OleDbCommand
Dim cs AsString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\damas90\My Documents\Bank.mdb"
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ObjCon.ConnectionString = cs
ObjCon.Open()
ObjCom.Connection = ObjCon
ObjCom.CommandText = "insert Into Table1(ID,name,family) Values('" & TextBox1.Text & " ' ,' " & TextBox2.Text & " ' , ' " & TextBox3.Text & " ')"
ObjCom.ExecuteNonQuery()
EndSub

با عرض سلام
يك سوال پيش پا افتاده داشتم ميخواستم بدونم تو قطعه كد بالا وقتي يكبار اطلاعات باهمين فرم وارده ميشه براي دفعه دوم كه ميخوايم وارد كنيم ارور مياره !
سوالات:
1.كدي هست كه كه اين نقص رو برطرف كنه؟؟
2.كدي هست كه اگر اطلاعات تكراري بود پيغامي بياره؟؟



كسي هست كمكم كنه ممنون ميشم



کد را به این شکل تغییر بده:

Private ObjCon As OleDb.OleDbConnection
Private ObjCom As OleDb.OleDbCommand
Dim cs As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\damas90\My Documents\Bank.mdb"
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ObjCon = New OleDb.OleDbConnection(cs)
ObjCon.Open()
ObjCom = New OleDb.OleDbCommand("insert Into Table1(ID,name,family) Values('" & TextBox1.Text & " ' ,' " & TextBox2.Text & " ' , ' " & TextBox3.Text & " ')")
ObjCom.ExecuteNonQuery()
End Sub

damas90
دوشنبه 18 مرداد 1389, 11:49 صبح
براي قسمت دوم سوالم كسي نيست كمك كنه؟؟

hero4000
دوشنبه 18 مرداد 1389, 12:20 عصر
دوست عزيز شما وقتي با دستور زير کانکشن رو باز ميکني ديگه نبايد دوباره بازش کني مگه اينکه اول ببنديش

ObjCon.Open()

damas90
دوشنبه 18 مرداد 1389, 17:35 عصر
Private ObjCon AsNew OleDb.OleDbConnection

Private ObjCom AsNew OleDb.OleDbCommand
Dim cs AsString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\damas90\My Documents\Bank.mdb"
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ObjCon.ConnectionString = cs
ObjCon.Open()
ObjCom.Connection = ObjCon
ObjCom.CommandText = "insert Into Table1(ID,name,family) Values('" & TextBox1.Text & " ' ,' " & TextBox2.Text & " ' , ' " & TextBox3.Text & " ')"
ObjCom.ExecuteNonQuery()
EndSub

با عرض سلام
قطعه كد بالا براي اضافه كردن ركورد به بانك اكسسه
حالا اگر خواسته باشيم كدي بنويسيم كه از textbox4 مقداري بگيريد وبا كليك رو كليد جستجوكند كه آيا مقدار textbox4 در ID بانك هست يا نيست بايد چجوري بنويسيم؟؟
منظورم همون search در بانك اكسسه؟؟
كسي هست كمكم كنه؟؟

damas90
چهارشنبه 20 مرداد 1389, 01:37 صبح
Private ObjCon AsNew OleDb.OleDbConnection



Private ObjCom AsNew OleDb.OleDbCommand
Dim cs AsString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\damas90\My Documents\Bank.mdb"
PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ObjCon.ConnectionString = cs
ObjCon.Open()
ObjCom.Connection = ObjCon
ObjCom.CommandText = "insert Into Table1(ID,name,family) Values('" & TextBox1.Text & " ' ,' " & TextBox2.Text & " ' , ' " & TextBox3.Text & " ')"
ObjCom.ExecuteNonQuery()
EndSub

با عرض سلام
قطعه كد بالا براي اضافه كردن ركورد به بانك اكسسه
حالا اگر خواسته باشيم كدي بنويسيم كه از textbox4 مقداري بگيريد وبا كليك رو كليد جستجوكند كه آيا مقدار textbox4 در ID بانك هست يا نيست بايد چجوري بنويسيم؟؟
منظورم همون search در بانك اكسسه؟؟

كسي هست كمكم كنه؟؟

كسي كمكم نميكنه؟؟

hamidreza66
چهارشنبه 20 مرداد 1389, 14:52 عصر
ه
كسي كمكم نميكنه؟؟


دوست عزیز ،ببخشید من اینو میگم، هیچوقت ما موفق نمیشیم مگر اینکه اول خودمون سعی کنیم بعد اگه واقعاً نتونستیم از دیگران بپرسیم
این باعث میشه که ذهنت بازتر بشه، سریعتر به نتیجه برسی- انگلیسیت هم بهتر بشه.
من اگه سوال میکنم، واقعاً نتونستم
بعضی سوالها مشخصه وقتی فرمی با کد
form2.show()
نشون داده میشه، یکم سعی کنی و گزینه های خود ویزالبیسیک رو چک میکردی میدیدی که
form2.hide()
میتونه یه فرم رو ناپدید کنه، روش های مختلفی برای این موضوع هست، میتونی کتاب های انگلیسی رو دانلود کنی، کمی انگلیسی جستجو کن

hamidreza66
چهارشنبه 20 مرداد 1389, 15:02 عصر
كسي كمكم نميكنه؟؟

برای حل مشکلت کد زیر رو اگه کمی دستکاری کنی جواب میده



Dim id As Integer
id = Val(TextBox5.Text) گرفتن ای دی سطری که باید خونده یا ویرایش بشه
Dim querystring As String = "select * from tb1 where id=@id" دستور جستجو
Using connection As New SqlConnection("Data Source=POURYA-PC\SQLEXPRESS;Initial Catalog=sickinfo;Integrated Security=True")
Dim comand As New SqlCommand(querystring, connection)
comand.Parameters.Add("@id", SqlDbType.Int).Value = id.ToString()
connection.Open()
Dim reader As SqlDataReader = comand.ExecuteReader()
While reader.Read()
if not reader(1) = nothing then
دستوراتت رو اینجا بنویس
end if
End While
reader.Close()
End Using
این کد به ازای هر ایدی که وارد میکنی، اگه فیلد دوم همون سطر مقدار داشته باشه یه دستوری رو اجرا میکنه

damas90
پنج شنبه 28 مرداد 1389, 09:55 صبح
با عرض سلام
یک سوال مهم وکلیدی داشتم

میخوام که در یک فرم دکمه ای موجود باشد که با کلیک کردن brows aشود واز درایوهای موجود عکسی انتخاب شده ودر جای مناسبی از فرم به نمایش بیاید ودر آخر با کلیک روی دکمه Save در بانک اکسس ذخیره شود

خیلی دنبال این گشتم اما پیدا نکردم

خواهش میکنم اگه کسی یاد داره کمکم کنه

damas90
شنبه 30 مرداد 1389, 03:07 صبح
با عرض سلام
یک سوال مهم وکلیدی داشتم

میخوام که در یک فرم دکمه ای موجود باشد که با کلیک کردن brows aشود واز درایوهای موجود عکسی انتخاب شده ودر جای مناسبی از فرم به نمایش بیاید ودر آخر با کلیک روی دکمه Save در بانک اکسس ذخیره شود

خیلی دنبال این گشتم اما پیدا نکردم

خواهش میکنم اگه کسی یاد داره کمکم کنه


كسي كمكم نميكنه؟؟
خواهش ميكنم

ali_najari
شنبه 30 مرداد 1389, 09:07 صبح
كسي كمكم نميكنه؟؟
خواهش ميكنم


سلام لطف ميكني بگي Database شما چيه ؟ Access يا SQL

ali_najari
شنبه 30 مرداد 1389, 09:46 صبح
اين هم برنامه اي براي ذخيره و بازخواني عكس در ديتابيس اكسس

mohsencom
شنبه 30 مرداد 1389, 12:29 عصر
با سلام
سوالم این بود که چطور میشه برنامه ای با vb.net و sql نوشت ک برای اجرای اون در سیستم مقصد نیازی به نصب sql server یا dotnet framework نباشه

nasim bahari
شنبه 30 مرداد 1389, 12:37 عصر
من دقیقاً متوجه منظورتون نشدم....

مگه میشه یه برنامه با تکنولوژی دات نت نوشت و خود دات نت رو نصب نکرد....؟

موضوع بالا در مورد SQL هم صدق می کنه..............؟

mohsencom
شنبه 30 مرداد 1389, 13:04 عصر
اما چرا خیلی از برنامه های بزرگ مثل حسابداری برای نصبشون نیاز به نصب sql یا framework ندارند...واقعا یعنی هیچ راهی نیست ؟ یا زاهی هیست که ما نمیدونیمو فقط بزرگان میدونن؟

شنیدم برنامه ای مثل redgte یا sql express بهمون کمک میکنن.......نظز شما چیه ؟

nasim bahari
شنبه 30 مرداد 1389, 13:13 عصر
اما چرا خیلی از برنامه های بزرگ مثل حسابداری برای نصبشون نیاز به نصب sql یا framework ندارند...واقعا یعنی هیچ راهی نیست ؟ یا زاهی هیست که ما نمیدونیمو فقط بزرگان میدونن؟

شنیدم برنامه ای مثل redgte یا sql express بهمون کمک میکنن.......نظز شما چیه ؟


دوست عزیز، در اون نرم افزار ها برای ساخت برنامه نصب نرم افزار از یک سری نرم افزار های ستاپ ساز استغاده می کنن که موارد لازم برای اجرای نرم افزارشون رو به اون میدن و برنامه ستاپ ساز هم یه ستاپ می سازه که اون ملزومات رو به طور اتومات نصب می کنه........

در ضمن sql express نسخه از موتور Sql هستش که برای بانک های محلی به کار میره و از اون نمی توان برای بانک های تحت شبکه استفاده کرد.......

Mani_rf
شنبه 30 مرداد 1389, 13:32 عصر
من دقیقاً متوجه منظورتون نشدم....

مگه میشه یه برنامه با تکنولوژی دات نت نوشت و خود دات نت رو نصب نکرد....؟

موضوع بالا در مورد SQL هم صدق می کنه..............؟

بله می شود. اگر کمی جستجو کنید این بحث قبلا در سایت مطرح شده و نرم افزارها و راهکارهایی هم برای اجرای برنامه های .Net بدون نیاز به نصب آن ارائه شده.

mohsencom
شنبه 30 مرداد 1389, 13:52 عصر
دوست عزیز، در اون نرم افزار ها برای ساخت برنامه نصب نرم افزار از یک سری نرم افزار های ستاپ ساز استغاده می کنن که موارد لازم برای اجرای نرم افزارشون رو به اون میدن و برنامه ستاپ ساز هم یه ستاپ می سازه که اون ملزومات رو به طور اتومات نصب می کنه........

در ضمن sql express نسخه از موتور Sql هستش که برای بانک های محلی به کار میره و از اون نمی توان برای بانک های تحت شبکه استفاده کرد.......

درسته دوست عزیز...یکی از همین برنامه هایی که میشناسم installshield هست اما همین نرم افزارم فقط عمل attach دیتابیس و یه سری کارای دیگه رو واسه مشتری یه صورت خودکار انجام میده و به همراه ستاپ برنامه sql server و چند تای دیگه رو نصب میکنه...یعنی راهی هست بدون نصب sql برنامه اجرا بشه؟؟؟

mohsencom
شنبه 30 مرداد 1389, 14:11 عصر
بله می شود. اگر کمی جستجو کنید این بحث قبلا در سایت مطرح شده و نرم افزارها و راهکارهایی هم برای اجرای برنامه های .Net بدون نیاز به نصب آن ارائه شده.

لطفا اگه ممکنه لینک همین مطلیو اینجا بذارید..هر چی گشتم پیدا نکردم..یه لینک پیدا کردم اونم بی پاسخ مونده بود

damas90
دوشنبه 01 شهریور 1389, 02:51 صبح
با عرض سلام خدمت دوستان يك سوال در مورد اضافه كردن ركورد در اكسس داشتم كسي هست كمكم كنه؟؟
من كدزير رو براي وارد كردن اطلاعات نوشتم اما بيشتر از 11 فيلد ذخيره نميكنه
آيا مدلش اينجوريه يا من اشتباهي كردم

خواهش ميكنم كمكم كنيد چون خيلي گيرشم



cmd.Connection = con
cmd.CommandText = "insert into table1 values(@sho_perseneli,@name,@family,@name_pedar,@j ens,@tt_ruz,@tt_mah,@tt_year,@tell,@mobile,@mohle_ tavallod)"

cmd.Parameters.AddWithValue("@sho_perseneli", tb_sho.Text)


cmd.Parameters.AddWithValue("@name", tb_name.Text)
cmd.Parameters.AddWithValue("@family", tb_family.Text)
cmd.Parameters.AddWithValue("@name_pedar", tb_pedar.Text)
cmd.Parameters.AddWithValue("@jens", tb_jens.Text)
cmd.Parameters.AddWithValue("@tt_ruz", tb_ruz.Text)
cmd.Parameters.AddWithValue("@tt_mah", tb_mah.Text)
cmd.Parameters.AddWithValue("@tt_year", tb_year.Text)
cmd.Parameters.AddWithValue("@tell", tb_tell.Text)
cmd.Parameters.AddWithValue("@mobile", tb_tell_hamrah.Text)
cmd.Parameters.AddWithValue("@mohle_tavallod", tb_tavallod.Text)
con.Open()
n = cmd.ExecuteNonQuery()
Con.close()



وقتي ميخوام چند فيلد ديگه كه در جدول موجوده رو اضافه كنم ارور مياره
بايد چيكار كنم؟؟

nasim bahari
دوشنبه 01 شهریور 1389, 08:12 صبح
با عرض سلام خدمت دوستان يك سوال در مورد اضافه كردن ركورد در اكسس داشتم كسي هست كمكم كنه؟؟
من كدزير رو براي وارد كردن اطلاعات نوشتم اما بيشتر از 11 فيلد ذخيره نميكنه
آيا مدلش اينجوريه يا من اشتباهي كردم

خواهش ميكنم كمكم كنيد چون خيلي گيرشم



cmd.Connection = con
cmd.CommandText = "insert into table1 values(@sho_perseneli,@name,@family,@name_pedar,@j ens,@tt_ruz,@tt_mah,@tt_year,@tell,@mobile,@mohle_ tavallod)"

cmd.Parameters.AddWithValue("@sho_perseneli", tb_sho.Text)


cmd.Parameters.AddWithValue("@name", tb_name.Text)
cmd.Parameters.AddWithValue("@family", tb_family.Text)
cmd.Parameters.AddWithValue("@name_pedar", tb_pedar.Text)
cmd.Parameters.AddWithValue("@jens", tb_jens.Text)
cmd.Parameters.AddWithValue("@tt_ruz", tb_ruz.Text)
cmd.Parameters.AddWithValue("@tt_mah", tb_mah.Text)
cmd.Parameters.AddWithValue("@tt_year", tb_year.Text)
cmd.Parameters.AddWithValue("@tell", tb_tell.Text)
cmd.Parameters.AddWithValue("@mobile", tb_tell_hamrah.Text)
cmd.Parameters.AddWithValue("@mohle_tavallod", tb_tavallod.Text)
con.Open()
n = cmd.ExecuteNonQuery()
Con.close()





وقتي ميخوام چند فيلد ديگه كه در جدول موجوده رو اضافه كنم ارور مياره
بايد چيكار كنم؟؟



سلام دوست عزیز............

من فر می کنم مشکی از خط زیر باشه......


cmd.Parameters.AddWithValue("@sho_perseneli", tb_sho.Text

نوع داده شماره پرسنلی باید حتماً از نوع داده صحیح باشه بهتره که به صورت long استفاده کنی......در ضمن وقتی می خواهی مثل خط بالا محتوای یه تکست باکس رو در اون بریزی از تابع VAL() استفاده کن.......مثل زیر....



cmd.Parameters.AddWithValue("@sho_perseneli", val(tb_sho.Text)

موفق باشین

assadiehsan
دوشنبه 01 شهریور 1389, 11:08 صبح
سلام
من ميخام بدونم معادل vbmodal تو vb.net 2008چيه
با تشكر

FastCode
دوشنبه 01 شهریور 1389, 12:58 عصر
ShowDialog

crying sphere
دوشنبه 01 شهریور 1389, 13:15 عصر
با سلام
من دو تا مشکل کوچیک دارم :

اول اینکه من وقتی توی فرمم دکمه Tab رو می زنم بجای اینکه Focus به ترتیب بین فیلدها حرکت کند , به طور نامنظم حرکت می کند . TabIndex را هم به ترتیب قرار داده ام آما باز نمی دونم چرا اینجور حرکت می کنه!

دوم اینکه تابعی می خوام که رشته ای رو که بهش میدی رو به عدد تبدیل کنه . مثال می زنم : رشته "crying sphere" رو به مقدار عددی ( کد اسکی ) آنها تبدیل کنه . چیزی مثل 65238458958 که عددی است که کاربر اصلا نمیتونه حدث بزنه این عدد چجور از اون کلمه بدست اومده .

اگه کسی از دوستان گرامی می تونه مشکل منو حل کنه لطف بزرگی به من کرده . خیلی ممنون .

Afshin160
دوشنبه 01 شهریور 1389, 13:57 عصر
نقل قول:
نوشته شده توسط nasim bahari http://barnamenevis.org/forum/images/buttons/viewpost.gif (http://barnamenevis.org/forum/showthread.php?p=1072091#post1072091)
من دقیقاً متوجه منظورتون نشدم....

مگه میشه یه برنامه با تکنولوژی دات نت نوشت و خود دات نت رو نصب نکرد....؟

موضوع بالا در مورد SQL هم صدق می کنه..............؟

بله می شود. اگر کمی جستجو کنید این بحث قبلا در سایت مطرح شده و نرم افزارها و راهکارهایی هم برای اجرای برنامه های .Net بدون نیاز به نصب آن ارائه شده.

متوجه نشدم !!!... يعني شما ميتونيد بدون نصب NET Framework برنامه تحت اون را در سيستم اجرا كنيد ؟ !!!
ميشه لينك مربوطه را بديد ؟

nasim bahari
دوشنبه 01 شهریور 1389, 14:04 عصر
متوجه نشدم !!!... يعني شما ميتونيد بدون نصب NET Framework برنامه تحت اون را در سيستم اجرا كنيد ؟ !!!
ميشه لينك مربوطه را بديد ؟


دوست عزیز......سلام

من در این مورد در سایت جستجو کردم و به نتیجه ی دلخواه نرسیدم .....به همین خاطر یه تایپیک جدید ایجاد کردم.........لینکشو می زارم.........میتونه بهت کمک کنه....

موفق باشی


http://www.barnamenevis.org/forum/showthread.php?t=241046
--------------------
--------------------

nasim bahari
دوشنبه 01 شهریور 1389, 14:09 عصر
با سلام
من دو تا مشکل کوچیک دارم :

اول اینکه من وقتی توی فرمم دکمه Tab رو می زنم بجای اینکه Focus به ترتیب بین فیلدها حرکت کند , به طور نامنظم حرکت می کند . TabIndex را هم به ترتیب قرار داده ام آما باز نمی دونم چرا اینجور حرکت می کنه!

دوم اینکه تابعی می خوام که رشته ای رو که بهش میدی رو به عدد تبدیل کنه . مثال می زنم : رشته "crying sphere" رو به مقدار عددی ( کد اسکی ) آنها تبدیل کنه . چیزی مثل 65238458958 که عددی است که کاربر اصلا نمیتونه حدث بزنه این عدد چجور از اون کلمه بدست اومده .

اگه کسی از دوستان گرامی می تونه مشکل منو حل کنه لطف بزرگی به من کرده . خیلی ممنون .

سلام دوست عزیز....

در مورد سوال دومت.......

اول طول رشته رو بدست بیار.......سپس در یه حلقه که از یک تا طول حلقه تکرار میشه....بوسیله تابع Mid یکی یکی کارکتر ها رو از رشته اصلی بردار و تبدیل بکن و در رشته جدید قرار بده.....

موفق باشی

محسن شامحمدی
دوشنبه 01 شهریور 1389, 14:38 عصر
با سلام
من دو تا مشکل کوچیک دارم :

اول اینکه من وقتی توی فرمم دکمه Tab رو می زنم بجای اینکه Focus به ترتیب بین فیلدها حرکت کند , به طور نامنظم حرکت می کند . TabIndex را هم به ترتیب قرار داده ام آما باز نمی دونم چرا اینجور حرکت می کنه!

دوم اینکه تابعی می خوام که رشته ای رو که بهش میدی رو به عدد تبدیل کنه . مثال می زنم : رشته "crying sphere" رو به مقدار عددی ( کد اسکی ) آنها تبدیل کنه . چیزی مثل 65238458958 که عددی است که کاربر اصلا نمیتونه حدث بزنه این عدد چجور از اون کلمه بدست اومده .

اگه کسی از دوستان گرامی می تونه مشکل منو حل کنه لطف بزرگی به من کرده . خیلی ممنون .
واسه مشکل اولتون با استفاده از منوی view گزینه tab order رو بزنید حالا اگر به ترتیب رو کنترل ها کلیک کنید ترتیب فوکوسشون به همون ترتیب می شه.


اما سوال دومتون .
من هم حدود 2 سال پیش فکر می کردم این روش روش مطمئنی واسه کد کردنه واسه همین یک دفعه سر کلاس تاریخ این کد رو نوشتم (حوصلم سر رفته بود:لبخند:) کد رو ضمیمه کردم

damas90
سه شنبه 02 شهریور 1389, 01:38 صبح
cmd.Connection = con
cmd.CommandText = "insert into table1 values(@sho_perseneli,@name,@family,@name_pedar,@j ens,@tt_ruz,@tt_mah,@tt_year,@tell,@mobile,@mohle_ tavallod)"

cmd.Parameters.AddWithValue("@sho_perseneli", tb_sho.Text)


cmd.Parameters.AddWithValue("@name", tb_name.Text)

cmd.Parameters.AddWithValue("@family", tb_family.Text)
cmd.Parameters.AddWithValue("@name_pedar", tb_pedar.Text)
cmd.Parameters.AddWithValue("@jens", tb_jens.Text)
cmd.Parameters.AddWithValue("@tt_ruz", tb_ruz.Text)
cmd.Parameters.AddWithValue("@tt_mah", tb_mah.Text)
cmd.Parameters.AddWithValue("@tt_year", tb_year.Text)
cmd.Parameters.AddWithValue("@tell", tb_tell.Text)
cmd.Parameters.AddWithValue("@mobile", tb_tell_hamrah.Text)
cmd.Parameters.AddWithValue("@mohle_tavallod", tb_tavallod.Text)
con.Open()
n = cmd.ExecuteNonQuery()
Con.close()





سلام دوست عزیز............

من فكر می کنم مشکی از خط زیر باشه......


cmd.Parameters.AddWithValue("@sho_perseneli", tb_sho.Text

نوع داده شماره پرسنلی باید حتماً از نوع داده صحیح باشه بهتره که به صورت long استفاده کنی......در ضمن وقتی می خواهی مثل خط بالا محتوای یه تکست باکس رو در اون بریزی از تابع VAL() استفاده کن.......مثل زیر....



cmd.Parameters.AddWithValue("@sho_perseneli", val(tb_sho.Text)

موفق باشین

منظورم اين نبود كه 11كاراكتر بگيره منظورم اين بود كه فيلد بيشتر بگيره بعنوان مثال ش ش و... منظورم فيلد بود

هركار ميكنم بيشتر از 11 فيلد عمل نميكنه
كسي ميتونه كمكم كنه؟؟

MehdiElexal
سه شنبه 02 شهریور 1389, 05:11 صبح
شما برای استفاده از چند فرم باید از تکنیک فرم مادر و فرم های دختر استفاده کنید. که یک سری مزایایی داره مثل اینکه اگر فرم مادر بسته یا کوچک نمایی بشه فرم های دختر هم همین کار رو می کنند و یا فرم های دختر فقط در محیط فرم مادر اجرا می شوند از اون خارج نمی شوند و .....

موفق باشید
منظور از فرم دختر همون فرم فرزند هست دیگه ؟؟؟؟؟؟؟ :اشتباه:

nasim bahari
سه شنبه 02 شهریور 1389, 11:04 صبح
منظور از فرم دختر همون فرم فرزند هست دیگه ؟؟؟؟؟؟؟ :اشتباه:

نام صحیح همان فرم دختر هستش و در اصطلاح همان فرم فرزند هست و فرقی نمی کنه.....اصلاً شما بگو فرم پسر....

crying sphere
سه شنبه 02 شهریور 1389, 21:12 عصر
سلام دوست عزیز....

در مورد سوال دومت.......

اول طول رشته رو بدست بیار.......سپس در یه حلقه که از یک تا طول حلقه تکرار میشه....بوسیله تابع Mid یکی یکی کارکتر ها رو از رشته اصلی بردار و تبدیل بکن و در رشته جدید قرار بده.....

موفق باشی

با تشکر از شما دوست خوب
من کاراکترها را یکی یکی جدا می کنم ولی نمی دونم با کدوم تابع اونارو به عدد تبدیل کنم. اگه ممکنه تابعشو بهم معرفی کنین. بازم ممنونم ازتون

nasim bahari
سه شنبه 02 شهریور 1389, 23:44 عصر
با تشکر از شما دوست خوب
من کاراکترها را یکی یکی جدا می کنم ولی نمی دونم با کدوم تابع اونارو به عدد تبدیل کنم. اگه ممکنه تابعشو بهم معرفی کنین. بازم ممنونم ازتون

سلام دوست عزیز........

تابع ASC برای بدست آوردن کد اسکی کارکتر وارد شده به کار می رود......

موفق باشین

hamidreza66
چهارشنبه 10 شهریور 1389, 16:50 عصر
سلام دوستان

نوشتن برنامه من تموم شد، با پایگاه داده اکسس 2007 کار میکنم، شنیدم برای اجرای برنامه در سیستم های دیگه باید اکسس نصب کنم، یا یه راه آسونتر اینکه فایلهای dll و... مورد نیاز رو همرا برنامه کپی کنم
من از این موضوع اطلاعا چندانی ندارم، تو گوگل که جستجو کردم اکسس 2003 به همین روش بود اما اکسس 2007 چیزی ندیدم
چه چیزهایی لازم هست و باید رعایت کنم برای اینکه برنامه بتونه تو کامپیوتر های مختلف اجرا بشه؟

ashkan209
چهارشنبه 10 شهریور 1389, 18:27 عصر
سلام دوستان

نوشتن برنامه من تموم شد، با پایگاه داده اکسس 2007 کار میکنم، شنیدم برای اجرای برنامه در سیستم های دیگه باید اکسس نصب کنم، یا یه راه آسونتر اینکه فایلهای dll و... مورد نیاز رو همرا برنامه کپی کنم
من از این موضوع اطلاعا چندانی ندارم، تو گوگل که جستجو کردم اکسس 2003 به همین روش بود اما اکسس 2007 چیزی ندیدم
چه چیزهایی لازم هست و باید رعایت کنم برای اینکه برنامه بتونه تو کامپیوتر های مختلف اجرا بشه؟

سلام دوست من
اگه برنامتون رو با یکی از زبانهای دات نت نوشتین و واسط ارتباط بانکتون از ADO.net استفاده کردین ، میبایست بر روی سیستم مقصد همون نسخه dot net framework که باهاش برنامه نویسی کردین رو نصب کنید
چیز دیگه ای لازم نیست

hamidreza66
چهارشنبه 10 شهریور 1389, 22:52 عصر
سلام دوست من
اگه برنامتون رو با یکی از زبانهای دات نت نوشتین و واسط ارتباط بانکتون از ADO.net استفاده کردین ، میبایست بر روی سیستم مقصد همون نسخه dot net framework که باهاش برنامه نویسی کردین رو نصب کنید
چیز دیگه ای لازم نیست

برنامه رو قتی تو کامپیوتر دیگه ای باز میکنم اجرا میشه اما به پایگاه داده وصل نمیشه تا اینکه اکسس نصب کنم

ashkan209
پنج شنبه 11 شهریور 1389, 07:52 صبح
برنامه رو قتی تو کامپیوتر دیگه ای باز میکنم اجرا میشه اما به پایگاه داده وصل نمیشه تا اینکه اکسس نصب کنم
1- نگفتین برنامتون رو با چی نوشتین (دات نت یا غیر - ado یا ado.net ))؟
2- آیا اکسس که نصب می کنید ، مشکل برطرف میشه ؟
3- قبل از نصب اکسس برای وصل نشدن چه خطایی میده ؟ یه اسکرین شات از اون خطا برامون بذارین

damas90
جمعه 12 شهریور 1389, 16:32 عصر
با عرض سلام وخسته نباشيد خدمت دوستانميخوام يك عكس رو ار بانك اكسس باز خواني كنم اما نميدونم چطوري عكس رو در PictureBox نمايش بدهم كسي ميتونه كمكم كنه خواهش ميكنم
خواهش ميكنم كسي اگه ميدونه كمكم كنهخيلي گيرشم

damas90
یک شنبه 14 شهریور 1389, 03:43 صبح
خواهش ميكنم سوال بالا مو يكي جواب بده
بدجوري كارم گيرشه
خواهش ميكنم

salmanbnd
یک شنبه 14 شهریور 1389, 04:28 صبح
سلام
می خواستم بدونم پیشنهادهای مایکروسافت برای پیشوندهایی که برای متغیرها، کنترلها استفاده می کنیم چی هست؟
برای مثال برای یک Form می تونیم از frm استفاده کنیم، مثلا frmNew
برای کنترل ComboBox چندتا پیشوند پیشنهاد شده:
1. cmb
2. cb
3. cbo
ممنون میشم راهنماییم کنید

salmanbnd
یک شنبه 14 شهریور 1389, 04:41 صبح
با عرض سلام وخسته نباشيد خدمت دوستانميخوام يك عكس رو ار بانك اكسس باز خواني كنم اما نميدونم چطوري عكس رو در PictureBox نمايش بدهم كسي ميتونه كمكم كنه خواهش ميكنم
خواهش ميكنم كسي اگه ميدونه كمكم كنهخيلي گيرشم

سلام دوست عزیز
اینجا (http://www.barnamenevis.org/forum/showthread.php?t=174712&highlight=%D8%AA%D8%B5%D9%88%DB%8C%D8%B1+%D9%BE%D8 %A7%DB%8C%DA%AF%D8%A7%D9%87+%D8%AF%D8%A7%D8%AF%D9% 87) و اینجا (http://www.barnamenevis.org/forum/showthread.php?t=177404&highlight=%D8%AA%D8%B5%D9%88%DB%8C%D8%B1+%D9%BE%D8 %A7%DB%8C%DA%AF%D8%A7%D9%87+%D8%AF%D8%A7%D8%AF%D9% 87) درباره اش دوستان بحث کردن
فکر می کنم این لینک (http://www.persiadevelopers.com/articles/image-database.aspx) هم می تونه کمکت کنه

modirmasool
یک شنبه 14 شهریور 1389, 13:35 عصر
سلام
می خواستم بدونم پیشنهادهای مایکروسافت برای پیشوندهایی که برای متغیرها، کنترلها استفاده می کنیم چی هست؟
برای مثال برای یک Form می تونیم از frm استفاده کنیم، مثلا frmNew
برای کنترل ComboBox چندتا پیشوند پیشنهاد شده:
1. cmb
2. cb
3. cbo
ممنون میشم راهنماییم کنید

به اینجا مراجعه کنین.


http://support.microsoft.com/kb/110264

damas90
دوشنبه 15 شهریور 1389, 03:51 صبح
باعرض سلام خدمت دوستان يك سوال داشتم ويك راهنمايي ميخوام
براي اضافه كردن به بانك اكسس به روش پارامتري بيشتر از يازده فيلد نميشه واگر بيشتر بزني ارور مياره قطعه كد زير كجاش مشكل داره يا اينكه كلا همينجوري هست وروش بهتر وكامل تري هست كه اين ايراد رو برطرف كنه؟؟




Public Class Form1

Dim n As Int32


Private con As New OleDb.OleDbConnection



Private cmd As New OleDb.OleDbCommand



Dim cs As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data



Source=|DataDirectory|\test2.mdb"
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles Button1.Click

cmd.Connection = con
cmd.CommandText = "insert into table1
values(@ID,@name,@family,@anme_pedar,@jens,@tt_ruz ,@tt_mah
,@tt_year,@tell,@mobile,@mohle_tavallod)"
cmd.Parameters.AddWithValue("@ID", TextBox1.Text)



cmd.Parameters.AddWithValue("@name", TextBox2.Text)
cmd.Parameters.AddWithValue("@family", TextBox3.Text)
cmd.Parameters.AddWithValue("@name_pedar", TextBox4.Text)
cmd.Parameters.AddWithValue("@jens", TextBox5.Text)
cmd.Parameters.AddWithValue("@tt_ruz", TextBox6.Text)
cmd.Parameters.AddWithValue("@tt_mah", TextBox7.Text)
cmd.Parameters.AddWithValue("@tt_year", TextBox8.Text)
cmd.Parameters.AddWithValue("@tell", TextBox9.Text)
cmd.Parameters.AddWithValue("@mobile", TextBox10.Text)
cmd.Parameters.AddWithValue("@mohle_tavallod",TextBox11.Text)
con.Open()
cmd.ExecuteNonQuery()
con.Close()
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs)


Handles MyBase.Load

con = New
OleDb.OleDbConnection(


"Provider=Microsoft.Jet.OLEDB.4.0;data

source=|DataDirectory|\test2.mdb")
cmd = New OleDb.OleDbCommand()
End Sub
End Class


خواهش ميكنم كمكم كنيد

ashkan209
دوشنبه 15 شهریور 1389, 12:59 عصر
... براي اضافه كردن به بانك اكسس به روش پارامتري بيشتر از يازده فيلد نميشه واگر بيشتر بزني ارور مياره

محدودیتی برای یازده فیلد وجود نداره
Error اتفاق افتاده و خطی که به خطا بر میخوره رو بذارین

damas90
سه شنبه 16 شهریور 1389, 01:52 صبح
سلام دوستان گلم
من يك سوال داشتم در خصوص باز خواني عكس در بانك اكسس
من عكس رو بصورت باينري ذخيره كردم به شكل زير:
حالا ميخوام فراخوانيش كنم وتوي PictureBox به نمايش بدم چه كدي رو بايد بنويسم؟؟ كسي ميتونه كمكم كنه؟؟
البته براي فراخوانيش يك تكست باكس هست كه داخلش شماره عكس بايد وارد بشه وبا كليك روي باتن بايد در PictureBox به نمايش بياد
قطعه كد اضافه كردن عكس :





PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim result As DialogResult = Me.OFD.ShowDialog
If result = Windows.Forms.DialogResult.OK Then
PictureBox1.Image = Image.FromFile(OFD.FileName.ToString)
EndIf
EndSub
PrivateSub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If Trim(TextBox1.Text) <> ""Then
Dim ms AsNew IO.MemoryStream
PictureBox1.Image.Save(ms, PictureBox1.Image.RawFormat)
Dim ArryPic AsByte() = ms.GetBuffer
ms.Close()
Dim cs AsString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Database.mdb;Persist Security Info=True"
ObjCon.ConnectionString = cs
ObjCon.Open()
ObjCom = New OleDbCommand
ObjCom.Connection = ObjCon
ObjCom.CommandText = "Insert Into TBL(PICID,Pic) Values(@A1,@Picture)"

ObjCom.Parameters.Add(

New OleDbParameter("@A1", OleDbType.VarChar)).Value = TextBox1.Text

ObjCom.Parameters.Add(New OleDbParameter("@picture", OleDbType.LongVarBinary)).Value = ArryPic
ObjCom.ExecuteNonQuery()
ObjCon.Close()
MsgBox("Save In Database Done")
Else
MsgBox(


"Fill Picture Id Please.")

EndIf
EndSub

damas90
سه شنبه 23 شهریور 1389, 19:03 عصر
كسي نيست كمكم كنه؟؟
خواهش ميكنم خيلي گير اين موضوع هستم