PDA

View Full Version : حرفه ای: نکته و سوال:ذخیره عدد فیلتر شده بصورت سه تایی



navidiran
چهارشنبه 14 مهر 1389, 10:57 صبح
سلام. من در textbox بنام costtxt عدد را برای قیمت دهی با دستور زیر وارد می کنم که جواب می دهد و قیمت را بصورت مثلا 3,500,000 می توانم وارد کنم:




if (!string.IsNullOrEmpty(costtxt.Text))


{
costtxt.Text =
string.Format("{0:N0}", Int64.Parse(costtxt.Text.Replace(",", "")));
costtxt.Select(costtxt.Text.Length, 0);

}



الان مشکل این است که این عدد را نمی توانم بدلیل وجود "," بصورت int ذخیره کنم.


درخواست و تقاضای کمک فوری از دوستان رو دارم.

Reza_Yarahmadi
چهارشنبه 14 مهر 1389, 12:09 عصر
خب از متد Replace براي از بين بردن "،" در زمان ذخيره كردن استفاده كنيد. اين متد توي SQL Server هم وجود داره.

costtx.Replace(",", "")

navidiran
چهارشنبه 14 مهر 1389, 13:17 عصر
شرمندم. هر کار می کنم نمی تونم این متد Replace رو پیدا کنم. آیا کتابخانه مخصوصی داره یا در جای مشخصی باید بکار گرفته بشه؟
چون هر کجا بعد از textBox دات "." میزنم چنین متدی رو نمیاره!

Reza_Yarahmadi
چهارشنبه 14 مهر 1389, 13:23 عصر
ببخشيد حواسم به اين نبود كه گفتيد اسم تكست باكس شماست!! اين متد مربوط به كلاس String است

costtxt.Text.Replace(",", "")

navidiran
چهارشنبه 14 مهر 1389, 13:57 عصر
یک مشکل دیگه ایجاد شد. اونم اینکه فکر می کنم الان برنامه داره بجای "," ، فاصله خالی بین عددها میزنه. چون نه ذخیره می شه و نه خطا میده. بنظر شما چیکار کنم؟

Reza_Yarahmadi
چهارشنبه 14 مهر 1389, 14:13 عصر
كدي كه من نوشتم رو بايد زماني كه ميخوايد ذخيره كنيد بنويسيد.
مشكل اصلي شما اينه كه كد ذخيره سازي رو نذاشتيد!:چشمک:
لطفا كدي كه قراره ذخيره سازي انجام بده رو اينجا بذاريد تا بهتر بشه كمكتون كرد.

navidiran
چهارشنبه 14 مهر 1389, 14:31 عصر
من کد را در زمانی که عملیات ذخیره قرار هست اجرا بشه میزارم ولی textbox رو پاک نمی کنه.



if (saveBtnMenu.Selected)
{

costtxt.Text = costtxt.Text.Replace(",", "");

user use = budgetDataContext.users.Where(p => p.Username == userNameTxt.Text.Trim()).FirstOrDefault();
if (Functiontype == "new")
{
if (semattxt.Text != "")
{
semat sem = newsemat();
List<semat> query = budgetDataContext.semats.ToList();
if (query.Count > 0)
{
foreach (var item in query)
{
if (mode == true)
{
if (semattxt.Text.Trim() == item.SematName.ToString().Trim())
{
MessageBox.Show(" ");

mode = false; } }
}if (mode == true)
{
sem.SematName = semattxt.Text.Trim();
sem.HourCost = System.
Convert.ToInt64(costtxt.Text);
sem.ComeGo = System.
Convert.ToInt64(comeGotxt.Text);
sem.Food = System.
Convert.ToInt64(foodtxt.Text);
sem.Tour = System.Convert.ToInt64(tourtxt.Text);
sem.Vdate = dateTodayTxt.Text.Trim();
sem.VuserId = use.Id;
budgetDataContext.semats.InsertOnSubmit(sem);
budgetDataContext.SubmitChanges();

Reza_Yarahmadi
چهارشنبه 14 مهر 1389, 14:53 عصر
مشكل از كد Replace نيست چون اگه بود مسلما خطا ميداد.
اول كدتون Beak Point بذاريد و خط به خط چك كنيد ببينيد شرطهايي كه گذاشتيد درست كار ميكنن يا نه، به نظر من احتمالا شرطها باعث ميشه ذخيره سازي انجام نشه.

kamran00f
چهارشنبه 14 مهر 1389, 16:43 عصر
سلام. من در textbox بنام costtxt عدد را برای قیمت دهی با دستور زیر وارد می کنم که جواب می دهد و قیمت را بصورت مثلا 3,500,000 می توانم وارد کنم:




if (!string.IsNullOrEmpty(costtxt.Text))


{
costtxt.Text =
string.Format("{0:N0}", Int64.Parse(costtxt.Text.Replace(",", "")));
costtxt.Select(costtxt.Text.Length, 0);

}



الان مشکل این است که این عدد را نمی توانم بدلیل وجود "," بصورت int ذخیره کنم.



درخواست و تقاضای کمک فوری از دوستان رو دارم.



این کدی که نوشتی علامت های "," رو حذف میکنه یعنی مشکلت برای ذخیره کردن تو int وجود "," نیست. مطمئنی که اشکال از این نیست که داری از Int64 استفاده میکنی؟ یه بار با cast کردن بریزش تو int امتحان کن ببین میشه یا نه. امتحانش ضرر نداره که :چشمک:


int a = (int) Int64.Parse(costtxt.Text);

navidiran
شنبه 17 مهر 1389, 17:14 عصر
این کدی که نوشتی علامت های "," رو حذف میکنه یعنی مشکلت برای ذخیره کردن تو int وجود "," نیست. مطمئنی که اشکال از این نیست که داری از Int64 استفاده میکنی؟ یه بار با cast کردن بریزش تو int امتحان کن ببین میشه یا نه. امتحانش ضرر نداره که :چشمک:


int a = (int) Int64.Parse(costtxt.Text);


آقا این هم error می ده . ببینین اجازه بدین کد اصلاح شدم رو دوباره بزارم شاید کسی بتونه کمکم کنه. (یک کد کوچولو چند روزه که گیر کرده و حل نمی شه.)


SaveBtn.Click(){
costtxt.Text = costtxt.Text.Replace(",", "");
semat sem = new semat();
List<semat> query = budgetDataContext.semats.ToList();
if (query.Count > 0)
{
sem.SematName = semattxt.Text.Trim();
budgetDataContext.semats.InsertOnSubmit(sem);
budgetDataContext.SubmitChanges();
}


}


اشکال از int64 نیست چون بقیه جاها کار میکنه و فقط توی این فرم که می خوام ارزش ریالی رو با "," جدا کنم خطا درست می شه. واقعا نمی دونم چیکار کنم. اگر ممکنه کمکم کنید.