PDA

View Full Version : واردكردن مبلغ از تكست باكس داراي مسك در ديتابيس



نیلوفر66
جمعه 05 شهریور 1389, 17:12 عصر
سلام دوستان اميدوارم حالتون خوب باشه
مشكلي كه من دارم مربوط به يك تكس باكس هست كه مسكشو به صورت 000و000و000تعريف كردم كه مبلغي كه وارد ميشه سه رقم سه رقم جداكنه
حالا نميدونم چجوري واردديتابيس كنم نوعش رو اينت تعريف كردم.

nasim bahari
جمعه 05 شهریور 1389, 17:48 عصر
سلام دوستان اميدوارم حالتون خوب باشه
مشكلي كه من دارم مربوط به يك تكس باكس هست كه مسكشو به صورت 000و000و000تعريف كردم كه مبلغي كه وارد ميشه سه رقم سه رقم جداكنه
حالا نميدونم چجوري واردديتابيس كنم نوعش رو اينت تعريف كردم.

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

مقدار شما دارای علامت کاما می باشد پس عدد نیست و شما نمی تونین اون رو نوی فیلد Integer ذخیره کنید و باید در یک فیلد NVarChar ذخیره کنید مگر اینکه قبل از ذخیره در دیتابیس به حالت عدد برگردد.....که البته همانطور که می دونید مقداری که در تکست باکس قرار دارد یه رشته هست ولی اگر فقط دارای کارکتر های عددی باشد می توان آنرا بوسیله تابع Val به Integer تبدیل کرد و در یه فیلد عددی در دیتا بیس ذخیره کرد . .....

موفق باشین

Saman_12
جمعه 05 شهریور 1389, 20:46 عصر
سلام.
توی چندین پست قبل من یه تکست پیشرفته گذاشته بودم می تونید از اون استفاده کنید اگه یک خاصیتش رو فعال کنید 3 رقم جدا می کنه و اگه غیر فعال کنید به حالت قبل بر می گرده!
میتونید یک پرو پرتی ادد کنید :


Private SplitText_ As Boolean
Overloads WriteOnly Property SplitNumber() As Boolean
Set(ByVal value As Boolean)
SplitText_ = value
'SplitNumber
If SplitText_ = True Then
If IsNumeric(Me.Text) = True Then
If Me.Text.Length > 3 Then
Dim Str As String = FormatNumber(Me.Text)
If Mid(Str, Str.Length - 2, Str.Length) <> "," Then
Me.Text = (Mid(Str, 1, Str.Length - 3))
End If
End If
End If
ElseIf SplitText_ = False Then
For i = 1 To Me.Text.Length
Dim Str() As String = Split(Me.Text, ",")
Me.Text = Join(Str, "")
Next
End If
End Set
End Property

اینم توی رویداد TextCahnged :


If SplitText_ = True Then
If IsNumeric(Me.Text) = True Then
If Me.Text.Length > 3 Then
Dim Str As String = FormatNumber(Me.Text)
If Mid(Str, Str.Length - 2, Str.Length) <> "," Then
Me.Text = (Mid(Str, 1, Str.Length - 3))
End If
End If
End If
ElseIf SplitText_ = False Then
For i = 1 To Me.Text.Length
Dim Str() As String = Split(Me.Text, ",")
Me.Text = Join(Str, "")
Next
End If

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


Dim Str() As String = Split(Me.Text, ",")
Me.Text = Join(Str, "")

Mani_rf
شنبه 06 شهریور 1389, 12:10 عصر
یک فرم به شکل زیر ایجاد کن، سپس کد های زیر را درون آن کپی کن و نتیجعه را ببین.



http://barnamenevis.org/forum/attachment.php?attachmentid=54879&stc=1&d=1282979320


Private Sub textBox1_TextChanged(ByVal sender As Object, ByVal e As EventArgs) Handles TextBox1.TextChanged
Split3Part(TextBox1)
End Sub
Private Sub Split3Part(ByVal sender As TextBox)
sender.Text = Strings.Format(Conversion.Val(sender.Text.Trim().R eplace(",", "")), "#,0")
sender.SelectionStart = sender.TextLength
Dim _Value As Double = Convert.ToInt64(Strings.Replace(sender.Text, ",", ""))
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MsgBox(TextBox1.Text & vbNewLine & TextBox1.Text.Replace(",", ""))
End Sub

sharifat
شنبه 02 بهمن 1389, 12:14 عصر
سلام
خدا قوت به همگي
احساس كردم سوال من هم اندكي شبيه سوال دوستمون هست به همين خاطر منم سوالم رو اينجا مي پرسم
من توي DGV يه فيلد تاريخ دارم. مي خواستم وقتي كه كاربر مي خواد تاريخ رو وارد كنه با فرمت خود تاريخ باشه(البته شمسي)
مانند Masked . اما نميدونم توي گريد چطور همچين كاري كنم.؟؟؟؟؟!!!!

sharifat
شنبه 02 بهمن 1389, 19:05 عصر
هيچكي نيست جواب منو بده؟؟؟؟ :گریه::گریه: