PDA

View Full Version : مبتدی: پروژه ی آماتور پایان ترم من ( چشم سوم )



vesall
یک شنبه 23 مرداد 1390, 14:48 عصر
1392:
سلام خدمت همه.
این پروژه رو اون سال به هر بدبختی بود تحویل دادم :دی

اما الان میخوام با sql و linq بازنویسیش کنم و ممنون میشم همچون گذشته به من کمک کنید.
--------------------------------------------------------------------------------------------------------------
1390:
سلام.
من یه سی شارپ کار خیلی خیلی مبتدی هستم،‌:خجالت: دو هفته دیگه هم باید پروژه ام رو تحویل بدم ! { پروژه خیلی وقته تحویل داده شده. الان دارم برنامه ای رو که تحویل دادم برای خودم توسعه میدم، دیدم بهترین راه برای آشنا شدن با برنامه نویسی، توسعه دادن همین برنامه، و مواجه شدن با مشکلات هست. }:اشتباه: و با یه سری مشکلات بد مواجه شدم و آخرین امیدم به شماست.:افسرده:
امیدوارم اعضای تلار گفتگو کمکم کنند

توضیحاتی در مورد برنامه
برنامه ی من دارای 5-6 فرم هست که یکیشون فرم اصلی من هست ( مین ) و میخوام وقتی برنامه اجرا میشه،‌ این بزرگ بیافته پشت، و توش اسم یوزری که وارد شده رو نمایش بده و یک ساعت.

اولین مشکل:
چطوری میتونم فرم پیشفرض رو عوض کنم؟؟


دومین مشکل:
مشکل من اینجاست که اولا میخوام فرم مین کل صفحه رو بگیره،‌اما کدش رو بلد نیستم


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

Originalgriff
یک شنبه 23 مرداد 1390, 15:11 عصر
اولین مشکل:
چطوری میتونم فرم پیشفرض رو عوض کنم؟؟
به پنجره solution explorer برید و بر ور ی فایل program.cs دابل کلیک کنید و اسم فرم مورد نظرتون رو در اونحا بنویسید برای مثال فرم Frmlogin:
Application.Run(new Frmlogin ());


دومین مشکل:
مشکل من اینجاست که اولا میخوام فرم مین کل صفحه رو بگیره،‌اما کدش رو بلد نیستم
بر روی فرم کلیک کنید و درقسمت راست سی شارپ که پینجره properties هستش آحرین گزینه یعنی windows state رو maximize کنید


سومین مشکل:‌
میخوام وقتی صفحه ی مین اومد بالا، همراه با اون، صفحه ی ورود بیاد و وقتی شخص،‌نام کاربری و رمز رو درست زد،‌اونوقت بتونه از امکانات استفاده کنه، به عبارتی، وقتی برنامه اجرا میشه،‌ فرم ورود بیاد رو و نگذاره افراد به بقیه دسترسی پیدا کنند تا زمان ورود.
برای این کار چندین راه وجود داره،اگر یه جستجوی ساده کنی پیدا میکنی،هرچند قبلی ها رو هم میتونستی با یک جستجوی ساده پیدا کنی.
ابتدایی ترین راحشو میگم،بدون استفاده از بانک:
در رویداد لود فرم مین فرم مورد نظرتو showdialog کن،بعد داخل فرم مینیت دوتا textbox بزار وداخل کدنویسیش دوتا متغییر تعریف کن. در نهایت یه شرط بزار که اگر با هم برابر بودند وارد مین شه مثل:
if (textBox1.Text.Trim().ToString() == username.ToString() && textBox2.Text.Trim().ToString() == password.ToString())
{

Frmlogin.ActiveForm.Hide();
Frmmain mn = new Frmmain();
mn.Show();
}
موفق باشی

vesall
یک شنبه 23 مرداد 1390, 16:54 عصر
ممنون، واقعا نجاتم دادید :قلب:


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

vesall
دوشنبه 24 مرداد 1390, 22:33 عصر
یه لیبل تو فرمت بزار


this



.lblUserName.Text = " کار بر جاری:" + ApplicationData.UserName;


متوجه نشدم، چطوری؟؟
وقتی ورود رو میزنه، وارد یه فرم جدید میشه، این فرم جدید با یه بانک دیگه در ارتباطه ها

morteza271
دوشنبه 24 مرداد 1390, 22:55 عصر
یک متغیر در Settings برنامتون بسازید و نام یا ID کاربر وارد شده(بعد از وارد کردن رمز عبور) رو توی اون ذخیره کنید.
از این به بعد در هرجای برنامه به کاربر وارد شده دسترسی دارید و میتونید نامش رو توی فرمهای مختلف نمایش بدین.
موفق باشید

vesall
سه شنبه 25 مرداد 1390, 01:16 صبح
یک متغیر در Settings برنامتون بسازید و نام یا ID کاربر وارد شده(بعد از وارد کردن رمز عبور) رو توی اون ذخیره کنید.
از این به بعد در هرجای برنامه به کاربر وارد شده دسترسی دارید و میتونید نامش رو توی فرمهای مختلف نمایش بدین.
موفق باشید

میشه بیشتر توضیح بدین.

ببخشید من خیلی آماتورم:خجالت:

vesall
سه شنبه 25 مرداد 1390, 13:11 عصر
سوالم رو اینطوری مطرح می کنم:
چطوری میتونم مقدار تکست باکس که تو مثلا فرم 1 هست رو، در فرم 2 بازخوانی کنم ؟؟؟

morteza271
سه شنبه 25 مرداد 1390, 14:37 عصر
ببینید شما اول یه متغیر مثلا به نام LoginUser از نوع string در Settings پروژتون بسازید.
بعد در فرم لوگین بعد از اینکه نام کاربری و رمز عبور کاربر رو چک کردین و درست بود نام کاربر رو در متغیری که تعریف کردین (LoginUser) ذخیره کنید.
اینطوری :
Properties.Settings.Default.LoginUser = txtUserName.Text;
حالا دیگه این متغیر تا وقتی برنامه بسته نشهوجود داره و نام کاربر وارد شده توی این متغیر هست و هرکجا از برنامتون که بخواین می تونین به اون دسترسی داشته باشین.
مثلا شما که میخواین نام کاربر وارد شده رو در تکست باکس در فرم 2 نمایش بدین در رویداد لود فرم کافیه این کد رو بنویسید :
private void Form2_Load(object sender, EventArgs e)
{
txtLoginUser.Text = Properties.Settings.Default.LoginUser;
}

موفق باشید

vesall
سه شنبه 25 مرداد 1390, 16:03 عصر
setting پروژه کجاس ؟؟

morteza271
سه شنبه 25 مرداد 1390, 16:16 عصر
در Solution Explorer قسمت Propertices...
عکس زیر رو ببینید :
73894
73893
موفق باشید

vesall
سه شنبه 25 مرداد 1390, 16:51 عصر
بسیااااااار سپاااااس

سوال بعدی :

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

morteza271
سه شنبه 25 مرداد 1390, 17:03 عصر
خوب بهترین راه همینه که عکس افراد رو هم در دیتابیس ذخیره کنید!
من با اکسس کار نکردم ولی اگه خواستین یه برنامه دارم که میتونین عکس ها رو توی دیتابیس SQl ذخیره کنید.
که اگه میخواین بگین تا براتون بذارم.
البته اگه در سایت جستجو کنید حتما ذخیره عکس در اکسس هست.
موفق باشید

vesall
سه شنبه 25 مرداد 1390, 17:10 عصر
چطوری کار می کنه ؟

vesall
سه شنبه 25 مرداد 1390, 17:18 عصر
خب، سوال بعد :خجالت:

ما یه frmmain داریم که کل صفحه رو میپوشونه، و باقی فرم ها قراره تو این باز بشن.

1: میخوام فرم ها درون این فرم باز بشن

2: میخوام تا زمانی که یه فرم باز هست، نشه به frmmain دسترسی داشت، به عبارتی، فرم باز، کاملا بالا قرار بگیره و تا زمانی که کاربر نبسته اش، نره زیر ( برای اینکه از هر فرم، فقط یکی باز بشه )

morteza271
سه شنبه 25 مرداد 1390, 17:42 عصر
1- خاصیت StartPosition از فرم هاتون رو برابر CenterParent قرار بدین.

2- برای نمایش فرن هاتون از کد زیر استفاده کنید :
Form2 frm = new Form2();
frm.ShowDialog();
یعنی به حای استفاده از Show() از ShowDialog() استفاده کنید.

vesall
سه شنبه 25 مرداد 1390, 21:35 عصر
تا اینجا که واقعا خوب پیش رفتیم.
ازتون واقعا ممنونم و امیدوارم همچنان ادامه پیدا کنه.

سوال بعدی : ما یه dataGridView1 داریم که اطلاعات تو اون نمایش داده میشه، و تعدادی تکست باکس داریم برای وارد کردن اطلاعات، حالا سوال من، چطوری میتونم اطلاعات ردیف انتخاب شده رو تو تکست باکس ها نمایش بدم ( تو تعریف و ارتباط با اکسس از ویزارد استفاده نکردم )

ma.rad
سه شنبه 25 مرداد 1390, 21:44 عصر
تو رویداد click دیتاگرید باید اینطوری بنویسی:

privatevoid dataGridView1_Click(object sender, EventArgs e)
{
int cr = dataGridView1.CurrentRow.Index;
TextBox1.Text = dataGridView1[ColumnIndex, cr].Value.ToString();

}

vesall
سه شنبه 25 مرداد 1390, 22:30 عصر
باز هم ممنون، واقعا خوشحالم از اینکه با وبسایت برنامه نویس آشنا شدم.

مشکل بعدی من: برای خروج از برنه چه چیزی رو پیشنهاد می کنید ؟؟

من فقط این کد رو بلدم که اصلا هم کار نمیکنه! چراش رو هم نمیدونم دقیقا

this.close()

morteza271
سه شنبه 25 مرداد 1390, 22:37 عصر
برای خروج از برنامه :
Application.Exit();
کدی که شما نوشتین فرم جاری رو می بنده!که در صورتی که فرم جاری فرم اصلی برنامه باشه از برنامه خارج هم میشه.

vesall
سه شنبه 25 مرداد 1390, 22:45 عصر
دیگه روم نمیشه سوال کنم :خجالت:

توی دیتا گرید ویوو، چطوری میتونم فونت رو عوض کنم

و

درون سلول ها رو وسط چین کنم ؟؟

morteza271
سه شنبه 25 مرداد 1390, 22:53 عصر
این سایت برای همین ایجاد شده که دوستان سریعتر به جوابشون برسن!

برای وسط چین شدن :
گرید یه پراپرتی داره به نام ColumnHeadersDefaultCellStyle از اونجا Aligment رو تغییر بدین.

برای فونت هم از همونجا میتونید تغییرش بدین.

golhay2
چهارشنبه 26 مرداد 1390, 00:33 صبح
بهتره بجای اینهمه سوال یه کم سرچ کنی یا از نمونه کدهای گذاشته شده در سایت استفاده کنی و اگه جائی واقعا گیر کردی سوال بپرسی
نه هر سوالی که به ذهنت رسید را بدون تحقیق و جستجو بپرسی ، به خاطر اینکه اگه بعدا بخوای برنامه نویس بشی باید صبر و
حوصله بیشتری به خرج بدی

vesall
چهارشنبه 26 مرداد 1390, 03:09 صبح
باور کنید من اکثر سوالاتم رو جستجو می کنم، ولی چون نمیدونم دقیقا چه چیز رو باید سرچ کنم، به جواب نمیرسم :ناراحت:

البته اینم بگم، این تایپیک چون خیلی سوالات مبتدیانه رو داره، میتونه برای افراد مبتدی مثل من خیلی خیلی مفید باشه.
خود من اگر به چنین تایپیکی بر بخورم، هم سرعتم میره بالا، و هم وقتم کمتر گرفته میشه./

vesall
چهارشنبه 26 مرداد 1390, 03:12 صبح
خب یه مشکل، برای شماره استخدامی، باید یه عدد راندوم 5-6 رقمی ساخته بشه که اولا از یک اصول پیروی کنه، دوما تکراری نباشه ...:متفکر:

golhay2
چهارشنبه 26 مرداد 1390, 11:07 صبح
http://barnamenevis.org/showthread.php?105142-%D8%AA%D9%88%D9%84%DB%8C%D8%AF-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF-%D8%AA%D8%B5%D8%A7%D8%AF%D9%81%DB%8C-%D8%AF%D8%B1-%D8%B3%DB%8C-%D8%B4%D8%A7%D8%B1%D9%BE

http://barnamenevis.org/showthread.php?290698-%D8%B3%D9%88%D8%A7%D9%84-.-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D8%B9%D8%AF%D8%AF-%D8%AA%D8%B5%D8%A7%D8%AF%D9%81%DB%8C-%D8%A8%D8%AF%D9%88%D9%86-%D8%AA%DA%A9%D8%B1%D8%A7%D8%B1

vesall
پنج شنبه 27 مرداد 1390, 13:00 عصر
من برای ارتباط با اکسس از این کد استفاده می کنم:

cn = new OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=" + Application.StartupPath + "\\karmandan.mdb");
da = new OleDbDataAdapter("select * from tb1", cn);
cm = cn.CreateCommand();
ds = new DataSet();
cn.Open();
da.Fill(ds, "tb1");
dvinfo = new DataView(ds.Tables["tb1"]);
cn.Close();
dataGridView1.DataSource = dvinfo;

حالا مشکل اینجاست که، تو این فرم جدید، با 3 تا جدول کار دارم و 3 تا دیتا گرید ویوو دارم، به نظر شما سه تا اکسس جدا بسازم یا تو یه اکسس، چند تا جدول( Table ) ؟؟
و
برای ارتباطش باید چکار کنم ؟؟


( 4 روز تا تحویل پروژه ! )

vesall
جمعه 28 مرداد 1390, 00:40 صبح
میشه بیشتر توضیح بدید ؟؟؟

ممنون
اگر کد کامل رو بنویسید که دیگه ...:خجالت:

vesall
جمعه 28 مرداد 1390, 00:50 صبح
من این کد رو که نمیدونم درست هست یا نه، زدم، ارور میده:


cn = new OleDbConnection("provider=microsoft.jet.oledb.4.0;data source=" + Application.StartupPath + "\\karmandaninfo.mdb");
da1 = new OleDbDataAdapter("select * from tashvigh", cn);
da2 = new OleDbDataAdapter("select * from work", cn);
cm = cn.CreateCommand();
ds1 = new DataSet();
ds2 = new DataSet();
cn.Open();
da1.Fill(ds1, "tashvigh");
da2.Fill(ds2, "work");
dvtashvigh = new DataView(ds1.Tables["tashvigh"]);
dvwork = new DataView(ds2.Tables["work"]);
cn.Close();
dataGridView1.DataSource = dvtashvigh;
dataGridView2.DataSource = dvwork;

morteza271
جمعه 28 مرداد 1390, 01:12 صبح
سلام.
لطفا متن خطا رو هم بذارید.

vesall
جمعه 28 مرداد 1390, 01:31 صبح
Syntax error in FROM clause.

74020

morteza271
جمعه 28 مرداد 1390, 01:38 صبح
عجیبه!!!!
اسم جدولتون درسته؟؟
توی این خط رو میگم :

select * from work
جدول work وجود داره؟؟

vesall
جمعه 28 مرداد 1390, 01:46 صبح
آره.

خب، یه اکسس دیگه میسازم ببینم چی میشه...

vesall
جمعه 28 مرداد 1390, 01:52 صبح
خب، 3 تا اکسس ساختم.

ولی بازم مشکل هنوز بود، ولی به شکل عجیبی حل شد
اسم جدول رو از work به works تغییر دادم

vesall
جمعه 28 مرداد 1390, 21:12 عصر
خداااا

این ارور برا چیه؟
Cannot perform 'Like' operation on System.Int32 and System.String.

74076

morteza271
جمعه 28 مرداد 1390, 21:28 عصر
احتمالا ستون shestekhdami توی دیتابیستون از نوع int هستش و دستور like رو نمی توان روی int استفاده کرد.

vesall
شنبه 29 مرداد 1390, 13:55 عصر
خب، چکار میتونم بکنم ؟؟؟؟؟

ma.rad
شنبه 29 مرداد 1390, 14:03 عصر
نوع داده اون ستون رو به nvarchar(50) تغییر بدید

Originalgriff
شنبه 29 مرداد 1390, 14:11 عصر
منظورتون از بازخوانی چیه؟؟؟؟
یعنی میخواید به فرم 2 انتقال بدید؟؟؟؟

vesall
شنبه 29 مرداد 1390, 14:32 عصر
منظورتون از بازخوانی چیه؟؟؟؟
یعنی میخواید به فرم 2 انتقال بدید؟؟؟؟

بله، یعنی مثلا تو فرم 1 تو txtuesrID دارم، اونو تو فرم 2 هم بتونم داشته باشم ( البته یک راه حل داده شد، ):قلب:

vesall
شنبه 29 مرداد 1390, 14:46 عصر
همه رو کردم Text تا خیال VS راحت شه.

هی خطا، هی ارور، آخرم این پروژه به موقع آماده نمیشه !!!!

ممنون بابت راهنمایی :قلب:

vesall
یک شنبه 30 مرداد 1390, 11:41 صبح
سلام دوباره.

یه combobox دارم که مقادیرش رو از فایل اکسس میگیره، میخوام کاربر دیگه نتونه چیزی بهش اضافه کنه و فقط از اونهایی که توش هست استفاده کنه، چطوری ؟؟

morteza271
یک شنبه 30 مرداد 1390, 11:59 صبح
خاصیت DropDownStyle کامبوباکس رو برابر DropDownList قرار بدین.

vesall
یک شنبه 30 مرداد 1390, 15:59 عصر
آیا کدی هست که ردیف فعلی رو حذف کنه ؟؟
اگر آره چیه ؟؟

( از اونجا که تو جدولم کلید ندارم، و مقادر مشابه هم درش هست، میخوام ردیفی که انتخاب میشه رو حذف کنم، نه با استفاده از cm2.CommandText = ("delete from info where userid=@userid");

vesall
یک شنبه 30 مرداد 1390, 17:28 عصر
سوال بعدی اینکه میخوام با گرفتن هر جای فرم بتونند اون رو جابجه کنند

vesall
یک شنبه 30 مرداد 1390, 17:57 عصر
این رو هم خیلی گشتم ندیدم:

من برای فرمم بک گراند انتخاب کرده ام، و میخوام بک گراند لیبل ها رو بردارم، به عبارتی، در لیبل فقط متن نمایش داده بشه،‌و لیبل بک گراند نداشته باشه/.

mohammad_cmd
یک شنبه 30 مرداد 1390, 20:04 عصر
سلام دوست عزیز
برای برداشتن بک گراند لیبل در قسمت انتخاب عکس گزینه local resource رو فعال کن

و در مورد سوال پست 47 شما با توابع api به راحتی می توانید این کار را انجام دهید.(لطفا جست و جو کنید)

vesall
یک شنبه 30 مرداد 1390, 21:13 عصر
باقی سوالا چی ؟؟

troski (http://barnamenevis.org/member.php?95103-troski)
http://barnamenevis.org/images/statusicon/user-offline.png جان منتظرم

morteza271
یک شنبه 30 مرداد 1390, 23:17 عصر
آیا کدی هست که ردیف فعلی رو حذف کنه ؟؟
اگر آره چیه ؟؟

( از اونجا که تو جدولم کلید ندارم، و مقادر مشابه هم درش هست، میخوام ردیفی که انتخاب میشه رو حذف کنم، نه با استفاده از cm2.CommandText = ("delete from info where userid=@userid");

چون جدولتون کلید نداره که کار خیلی اشتباه هست!! شما باید تمام ستون های جدول دیتابیس رو با ستون های سطر انتخاب شده چک کنید و هرکدوم که برابر بود رو حذف کنید.
ولی اینکه جدولتون کلید نداره اصلا خوب نیست!!!
برای چی براش کلید تعریف نکردین؟؟؟
پیشنهاد : وقتی جدول تون ستونی نداره که بتونید به عنوان کلید اصلی در نظر بگیرید یه ستون id بهش اضافه کنید که Identity باشه و به کاربر هم نشونش ندین!(برای همین جور مواقع خیلی مفیده)
موفق باشید.

vesall
دوشنبه 31 مرداد 1390, 03:22 صبح
چشم، کلید تعریف می کنم. فقط کاشکی کدی برای حذفش میدادید ( البته خودمم روش کار می کنم )


تا اینجا خیلی ابداعات خنده دار داشتم:خجالت: حالا پروژه رو میذارم میبینید.

میشه جواب باقی سوالامم بدین ؟؟ :خجالت:

vesall
سه شنبه 15 شهریور 1390, 22:54 عصر
سلام.

یه تکست باکس دارم که متنش اینه

2982 ** وصال پارسی ** تکنسین فنی

حالا میخوام فقط اون 2982 ( که شماره استخدامی هست ) رو بریزم در یک کتغیر.
چطوری میتونم این کار رو بکنم ؟؟

( توضیح اینکه متن تکست باکس متغیر هست )

FastCode
چهارشنبه 16 شهریور 1390, 00:06 صبح
string GetSplitAt(int Index, string Text, string Separator = "**")
{
string[] Iv = Text.Split(new string[] { Separator }, System.StringSplitOptions.RemoveEmptyEntries);
if (Iv.Length > Index)
return Iv[Index].Trim();
return null;
}


توجه مهم.در برنامه هاتون هیچ موقع به ورودی کاربر اعتماد نکنید.
اگر توی این مورد خواص میخواهید علتش رو بخونید مراجعه کنید به :
http://fa.wikipedia.org/wiki/%D8%AA%D8%B2%D8%B1%DB%8C%D9%82_%D8%A8%D9%87_%D9%BE %D8%A7%DB%8C%DA%AF%D8%A7%D9%87_%D8%AF%D8%A7%D8%AF% D9%87
http://en.wikipedia.org/wiki/SQL_injection

vesall
چهارشنبه 16 شهریور 1390, 00:26 صبح
ممنون از اینکه قابل دونسته و پاسخ دادید
ولی
:گریه:
من از این کد هیچی نفهمیدم. اصلا نمیدونم چطوری کار می کنه !!!

vesall
چهارشنبه 16 شهریور 1390, 00:29 صبح
در زمانی که منتظر پاسخ دوستان بودم این کار رو کردم :افسرده:
نظرتون چیه ؟ :لبخند:

textBox2.Text = cmbshestekhdami.Text;
textBox2.Focus();
textBox2.Select(0, 4);
label6.Text = textBox2.SelectedText;

FastCode
چهارشنبه 16 شهریور 1390, 03:59 صبح
string GetSplitAt(int Index, string Text, string Separator = "**")
{
string[] Iv = Text.Split(new string[] { Separator }, System.StringSplitOptions.RemoveEmptyEntries);
if (Iv.Length > Index)
return Iv[Index].Trim();
return null;
}


[QUOTE=vesall;1333480]ممنون از اینکه قابل دونسته و پاسخ دادید
ولی
:گریه:
من از این کد هیچی نفهمیدم. اصلا نمیدونم چطوری کار می کنه !!!

بعد از چند وقت یک نفر داره طبق قوانین سایت مشکلات پروژه دانشجوییش رو میپرسه.وظیفست.

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

در تابع:
خط اول متن ورودی رو در محل هایی که رشته پارامتر سوم وجود دارند خرد میکنه و تکه های خالی رو حذف میکنه(فکر میکنم توی مورد شما نباید بکنه).در نهایت نتیجه رو در متغیر Iv میریزه .
در خط دوم چک میکنه که تعداد تکه های جدا شده کمتر از شماره تکه که ای میخواهید نباشه.
در خط سوم اگر شرط برفرار باشه تکه مورد نظر رو بهتون برمیگردونه, (و space های اول و آخرش رو حذف میکنه)
در خط چهارم هم اگر شرط برقرار نباشه بهتون مقدار ه null رو برمیگردونه.

هر توضیح بیشتری نیاز دارید من در خدمتم.

vesall
چهارشنبه 16 شهریور 1390, 10:18 صبح
تا اونجایی که من یادمه تو قرار بود این پروژه رو 1 هفته پیش تحویل بدی.ههههههههههه
کار خوبی نیست که برای هیچ کاری دروغ بگی می تنستی بدن این کار هم کار خودتو انجام بدی.موفق باشی

با سپاس از ایکه بنده رو دروغ گو خطاب کردید :لبخندساده:

پروژه خیلی وقته تحویل داده شده. الان دارم برنامه ای رو که تحویل دادم برای خودم توسعه میدم، دیدم بهترین راه برای آشنا شدن با برنامه نویسی، توسعه دادن همین برنامه، و مواجه شدن با مشکلات هست.

پروژه رو یه طوری سرهم کردم تحویل دادم، استاد هم خیلی خوشش اومد !

لطفا قبل از اعدام یه سوالی چیزی :متفکر:

ممنون از راهنمایی همه ی دوستان، واقعا کمک های بزرگی به من کردید.

قصد دارم این تایپیک رو ادامه بدم ( البته اگر با قوانین سایت هم سو باشه ) چون تو این تایپیک، تقریبا همه ی چیزهای مبتدیی که امثال من امکان داره با اون مواجه بشن، هست.



با سپاس

FastCode
چهارشنبه 16 شهریور 1390, 12:27 عصر
با سپاس از ایکه بنده رو دروغ گو خطاب کردید :لبخندساده:

پروژه خیلی وقته تحویل داده شده. الان دارم برنامه ای رو که تحویل دادم برای خودم توسعه میدم، دیدم بهترین راه برای آشنا شدن با برنامه نویسی، توسعه دادن همین برنامه، و مواجه شدن با مشکلات هست.

پروژه رو یه طوری سرهم کردم تحویل دادم، استاد هم خیلی خوشش اومد !

لطفا قبل از اعدام یه سوالی چیزی :متفکر:

ممنون از راهنمایی همه ی دوستان، واقعا کمک های بزرگی به من کردید.

قصد دارم این تایپیک رو ادامه بدم ( البته اگر با قوانین سایت هم سو باشه ) چون تو این تایپیک، تقریبا همه ی چیزهای مبتدیی که امثال من امکان داره با اون مواجه بشن، هست.



با سپاس

کاملاً با قوانین سایت همسو هست.
طبق قوانین سایت اگر پروژه دانشجویی باشه فقط به همین شکل میتونید سوال و جواب بپرسید.

vesall
یک شنبه 20 شهریور 1390, 14:16 عصر
دوباره سلام.

سوال: در قسمت شماره ردیف، میخوام اعداد پشت سر هم باشند.
اگر از حالت auto number استفاده کنم، وقتی یه سطر رو حذف کنم، اون شماره ردیف کاملا نابود میشه! میخوام بعد از حذف، شماره ها ترمیم بشن، تا شماره ها پشت سر هم باشه ...

( برای نگه داری اطلاعات از اکسس استفاده می کنم )

vesall
یک شنبه 20 شهریور 1390, 21:30 عصر
دوباره سلام.

سوال: در قسمت شماره ردیف، میخوام اعداد پشت سر هم باشند.
اگر از حالت auto number استفاده کنم، وقتی یه سطر رو حذف کنم، اون شماره ردیف کاملا نابود میشه! میخوام بعد از حذف، شماره ها ترمیم بشن، تا شماره ها پشت سر هم باشه ...

( برای نگه داری اطلاعات از اکسس استفاده می کنم )

چی شد ؟ :ناراحت:

morteza271
یک شنبه 20 شهریور 1390, 21:53 عصر
سلام دوست عزیز.

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

اگه در بگید به چه دلیل میخواین این کار رو بکنید شاید روش های بهتر هم پیدا بشه.
موفق باشید.

vesall
یک شنبه 20 شهریور 1390, 22:41 عصر
خب، سطرها شماره دارند، و نمیخوام وقتی یک سطر حذف میشه، شماره اش هم حذف شه، چون ریتم برنامه جالب نمیشه... یه جوری میشه.

کسی روشی، کدی، کلاسی، تابعی، کشکی، چیزی نداره بده ما رو از بلا تکلیفی در بیاره ؟؟ :لبخند:

seven7777777
یک شنبه 20 شهریور 1390, 22:47 عصر
دوست عزیز
خیلی از مشکلات معمولا بخاطر مبهم بودن مساله پیش میاد و خیلی راه حل های مناسب هم به همین خاطر پیدا نمیشن .

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

اما راه حل شماره ردیف که در هیچ حالی بهم نخوره که البته بارها گفته شده ، کد زیر است :

MediumListDGV["rownum", e.RowIndex].Value = e.RowIndex + 1;

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

vesall
یک شنبه 20 شهریور 1390, 23:03 عصر
سلام.

بسیار بسیار ممنون ولی ...

ستون شماره ردیفم تو دیتا گرید به حالت چشمک زن در اومده ! لیبل هام متنشون نیست، رنگشونم عوض شده. علامت چشمک زن ماوس هم وقتی میرم رو تکست باکس، اثری ازش نیست ! وقتی مقادیر رو میخوام وارد برنامه کنم، خیلی خیلی طول میکشه ( قبلا به ثانیه هم نمیرسید )

چرا ؟؟؟؟؟

FastCode
دوشنبه 21 شهریور 1390, 03:58 صبح
این کار رو نکنید.

۱.
توی متدهای RowsAdded,RowsRemoved باید کدی بنویسید که مقدار این ستون رو تغییر بده.
یعنی از e.RowIndex شروع کنه و تا آخر بره.
ولی این کار با sort کردن مشکل داره.

۲.
وقتی اطلاعات رو از دیتابیس میخونید یک ستون به جدول موقتتون(System.Data.DataTable) اضافه کنید و به فیلد هاش مقدار بدید.
این راحته و مشکلی نداره.

۳.
از یک ستون اضافه در جدول استفاده کنید.
فقط این روش توی سیستمهای مالی جواب میده.

seven7777777
دوشنبه 21 شهریور 1390, 23:26 عصر
FastCode (http://barnamenevis.org/member.php?109710-FastCode) عزیز سلام
مخلصیم
من مشکل روشی که گفتم نفهمیدم و خودم توی برنامه های زیادی ازش استفاده کردم . به هیچ مشکلی هم برنخوردم . Sort هم توش مشکلی نداره .
باز تجربه دوستم FastCode بالاتره .

ستون شماره ردیفم تو دیتا گرید به حالت چشمک زن در اومده ! لیبل هام متنشون نیست، رنگشونم عوض شده. علامت چشمک زن ماوس هم وقتی میرم رو تکست باکس، اثری ازش نیست ! وقتی مقادیر رو میخوام وارد برنامه کنم، خیلی خیلی طول میکشه ( قبلا به ثانیه هم نمیرسید )
الان همه این مشکلات با اون یه خط کد من ایجاد شد :متعجب:

vesall
سه شنبه 22 شهریور 1390, 00:13 صبح
FastCode (http://barnamenevis.org/member.php?109710-FastCode) عزیز سلام
مخلصیم
من مشکل روشی که گفتم نفهمیدم و خودم توی برنامه های زیادی ازش استفاده کردم . به هیچ مشکلی هم برنخوردم . Sort هم توش مشکلی نداره .
باز تجربه دوستم FastCode بالاتره .

الان همه این مشکلات با اون یه خط کد من ایجاد شد :متعجب:

آره بخدا.

اصلا وضعیتی شده ها. برنامه به حالت تشنج رسیده :متعجب::قهقهه::ناراحت:

vesall
سه شنبه 22 شهریور 1390, 00:17 صبح
این کار رو نکنید.

۱.
توی متدهای RowsAdded,RowsRemoved باید کدی بنویسید که مقدار این ستون رو تغییر بده.
یعنی از e.RowIndex شروع کنه و تا آخر بره.
ولی این کار با sort کردن مشکل داره.

۲.
وقتی اطلاعات رو از دیتابیس میخونید یک ستون به جدول موقتتون(System.Data.DataTable) اضافه کنید و به فیلد هاش مقدار بدید.
این راحته و مشکلی نداره.

۳.
از یک ستون اضافه در جدول استفاده کنید.
فقط این روش توی سیستمهای مالی جواب میده.

من هنوز تو تحلیل اون روش قبلی که داده بودید گیر کردم.:اشتباه:

برنامه نویسی من از بیخ مشکل داره!!!

با دانش من، هیچ کدوم از کارهایی که گفتید رو نتونستم بکنم.:ناراحت:

حالا امشبم باز می افتم به جون C# ولی ....


ممنون از راهنمایی، امشب تمام تلاشم رو می کنم از راهنمایی های شما و آقای 77777 ، یه راه حل در بیارم. ( آی کن ! :تشویق: )

seven7777777
سه شنبه 22 شهریور 1390, 01:19 صبح
میشه یه برنامه کوچیک بنویسی و یا همین برنامتو بزاری .
اگه میشه بزار تا من چکش کنم .
اگه نخواستی میل کن و اگه بازم نشد ، یکم بش ور برو تا دوستان دیگه هم بیان و نظرشونو بگن .
موفق باشی

vesall
سه شنبه 22 شهریور 1390, 02:41 صبح
برنامه هنوز خیلی مشکل داره، انواع ارور میده و فکر کنم وقتتون رو زیاد بگیره.
یه برنامه تست درست کردم، البته چون سبک تره، اینبار رنگ لیبل ها درسته ! و کمتر اذیت می کنه.



دارم روش کار می کنم، امیدوارم بتونم به یه جایی برسم :قلب:

http://www.persiangig.com/pages/download/?dl=http://parsi-it.persiangig.com/document/test.rar

seven7777777
پنج شنبه 24 شهریور 1390, 09:30 صبح
بیا
ببین ، بدون پرش و بسیار عالی عمل می کنه .:لبخندساده:

vesall
شنبه 26 شهریور 1390, 14:30 عصر
سلام. با استفاده از اینجا (http://barnamenevis.org/showthread.php?277245-%D8%AF%D8%B1%D8%AE%D9%88%D8%A7%D8%B3%D8%AA-%DA%A9%D9%85%DA%A9-%D8%AF%D8%B1-textbox-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%85%D9%85%DB%8C%D8%B2-%D8%A8%DB%8C%D9%86-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE&highlight=%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE+textbox) تکست باکس هایی که عدد بودند، اعدادشون رو 3تا 3تا جدا کردم. مثلا بعد از وارد کردن 2000 به 2.000 تبدیل میشه، حالا میخوام دو تا تکست باکس رو با هم جمع یا از هم کم کنم، ولی ارور میده و فکر کنم به خاطر . باشه ( جدا کننده {. یا ،} ).

چکار کنم ؟

morteza271
شنبه 26 شهریور 1390, 14:50 عصر
سلام.
از این کد استفاده کنید :
int a = Int32.Parse(txt1.Text.Replace(".", "")) + Int32.Parse(txt2.Text.Replace(".", ""));
البته اگه اعداد رو سه تا سه تا با کاراکتر دیگری به جز نقطه جدا کردین در کد بالا به جای "." از کاراکتر خودتون استفاده کنید.
موفق باشید

vesall
دوشنبه 28 شهریور 1390, 00:11 صبح
سلام. با استفاده از اینجا (http://barnamenevis.org/showthread.php?277245-%D8%AF%D8%B1%D8%AE%D9%88%D8%A7%D8%B3%D8%AA-%DA%A9%D9%85%DA%A9-%D8%AF%D8%B1-textbox-%D8%A8%D8%B1%D8%A7%DB%8C-%D9%85%D9%85%DB%8C%D8%B2-%D8%A8%DB%8C%D9%86-%D8%A7%D8%B9%D8%AF%D8%A7%D8%AF-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE&highlight=%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE+textbox) تکست باکس هایی که عدد بودند، اعدادشون رو 3تا 3تا جدا کردم. مثلا بعد از وارد کردن 2000 به 2.000 تبدیل میشه، حالا میخوام دو تا تکست باکس رو با هم جمع یا از هم کم کنم، ولی ارور میده و فکر کنم به خاطر . باشه ( جدا کننده {. یا ،} ).

چکار کنم ؟

مشکلی جدید: این چرا backspace نداره ؟؟؟ نمیتونم پاک کنم، چکار کنم ؟؟
تو keypress هم نتونستم تعریف کنم که کد اسکی 8 رو قبول کنه :(

seven7777777
دوشنبه 28 شهریور 1390, 00:19 صبح
وصال جان از کدوم روش استفاده کردی . کامپوننتو گرفتی یا maskTextBox ؟؟؟

vesall
دوشنبه 28 شهریور 1390, 01:29 صبح
یک فایل dll هست.
:متفکر:
TxtProNet.zip (http://barnamenevis.org/attachment.php?attachmentid=67090&d=1299259852)

vesall
دوشنبه 28 شهریور 1390, 20:04 عصر
خب؟؟؟؟؟؟؟؟؟؟؟؟؟؟

seven7777777
دوشنبه 28 شهریور 1390, 23:25 عصر
oخوب مشخصه که backspace رو هندل نمیکنه . اما اینکه چجوری بتونی درستش کنی . ببین می تونی با override کردن یکی از متدهای keypress یا keyup و یا keydown بفهممی backspace زده شده یا نه . اگه نشد ، یه کد بود نمی دونم به تو دادم یا کس دیگه که نمیزاشت با اینتر تو دیتا گرید به خط بعدی بریم ، اونو بکار ببر و backspace رو بدست بگیر .

حالا باز ببین چی میشه .
موفق باشی

vesall
سه شنبه 29 شهریور 1390, 00:07 صبح
اینو زدم نشد :


private void txtvaznekhales_KeyPress_1(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 8)
e.Handled = false;
}

seven7777777
سه شنبه 29 شهریور 1390, 00:41 صبح
وصال جان اصلا فهمیدی چی گفتم ؟؟؟:عصبانی++:

گفتم override کن هااااااااااااااااااااا

vesall
چهارشنبه 30 شهریور 1390, 01:11 صبح
سون جان نزن :گریه:

خو این override چی هست ؟؟ نمیدونم:خجالت:

FastCode
چهارشنبه 30 شهریور 1390, 06:56 صبح
FastCode (http://barnamenevis.org/member.php?109710-FastCode) عزیز سلام
مخلصیم
من مشکل روشی که گفتم نفهمیدم و خودم توی برنامه های زیادی ازش استفاده کردم . به هیچ مشکلی هم برنخوردم . Sort هم توش مشکلی نداره .
باز تجربه دوستم FastCode بالاتره .

الان همه این مشکلات با اون یه خط کد من ایجاد شد :متعجب:

اگر دقت کنید من سه تا روش دیگه گفتم و مقایسشون کردم.

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

vesall
یک شنبه 10 مهر 1390, 11:52 صبح
با سلام.

میخواستم بدونم چطور میشه اون تیکه ی اول دیتا گرید ویوو رو حذف کرد که نباشه ؟؟؟ ( تو عکس کامل مشخص کردم ) با تشکر.

76122

vesall
یک شنبه 10 مهر 1390, 22:57 عصر
یعنی کسی بلد نیست ؟؟؟:متعجب:

seven7777777
یک شنبه 10 مهر 1390, 23:57 عصر
چرا ، وصال زود خسته میشیاااااااا http://barnamenevis.images/smilies/yahoo/115.gif
آقا تو ویژگی های دیتاگریدت خاصیت RowHeadersVisible (http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.rowheadersvisibl e.aspx) رو false کن . راستی انصافا قبل سوال کردن یه نگاه به خاصیتای آبجکتت بکن . http://barnamenevis.images/smilies/yahoo/109.gif

vesall
چهارشنبه 25 دی 1392, 14:12 عصر
سلام.
من از این کد برای صفحه ی ورود استفاده می کنم، اما نمیدونم چرا تو قسمت بررسی رمز همیشه میگه رمز اشتباه است !

private void button1_Click(object sender, EventArgs e)
{
var db = new LINQDataContext();
var query = from allfield in db.users where allfield.username.ToString() == txtluser.Text.ToString() select allfield;
dgvlogin.DataSource = query;
int frr = dgvlogin.RowCount;
if (frr == 1)
{
MessageBox.Show("Please Write Currect Username");
dgvlogin.DataSource = db.users;
}
else
{
txttuser.Text = dgvlogin.CurrentRow.Cells["username"].Value.ToString();
txttpass.Text = dgvlogin.CurrentRow.Cells["password"].Value.ToString();
txttlevel.Text = dgvlogin.CurrentRow.Cells["level"].Value.ToString();
if (txtlpass.Text.ToString() == txttpass.Text.ToString())
MessageBox.Show("Wellcom To 3EyE Program..... .");
else
{
dgvlogin.DataSource = db.users;
MessageBox.Show("Enter Currect Password");
}
}
}

من توی پایگاه دادم نوع رو nchar(10) تعریف کردم. وقتی مقدار رو کمتر از 10 حرف میزنم، باقی رو space میزنه! و وقتی به textbox منتقلش می کنم هم space ها رو اضاف میکنه آخر textbox. راهی هست که بهش بفهمونم تو پایگاه داده آخرش رو با space پر نکنه !؟ً