PDA

View Full Version : لود خودکار شماره در textbox



soniarose
یک شنبه 03 آبان 1388, 17:51 عصر
سلام من میخوام وقتی فرمم لود میشه به صورت خودکار در textbox که مربوط به شماره پرسنلی است یک شماره وارد بشه لطفا راهنمایی کنید

vb.net2008
یک شنبه 03 آبان 1388, 18:57 عصر
ميشه بيشتر توضيح بدين. اين شماره رو مي خواين از توي بانك بخونين يا همينجوري فقط يه شماره بياد داخل Textbox قرار بگيره

maXXis
یک شنبه 03 آبان 1388, 19:09 عصر
dar form load benevis.
harchi tu in ghesmat benevisi load mishe.
har form faghat yek bar load mishe(ino dar nazar dashte bash.)

babate EN sorry.

sari-1369
یک شنبه 03 آبان 1388, 22:55 عصر
با این تابع میتونی این کارو انجام بدی .


txt_Code.Text=GetMaxID("TableName","FildeName")


Public Function GetMaxID(ByVal TableName As String, ByVal FieldName As String) As Decimal
strcon = "کانکشن استرینگ"
con = New SqlConnection(strcon)
Dim id As Decimal
Try
If con.State = ConnectionState.Open Then
con.Close()
End If
con.Open()
Dim cmd As System.Data.SqlClient.SqlCommand = New SqlCommand("select max(" & FieldName & ") from " & TableName & "", con)
Dr = cmd.ExecuteReader()

If Dr.HasRows = True Then
Dr.Read()
If Dr.IsDBNull(0) Then
id = 1
Else
id = System.Convert.ToDecimal(Dr.GetValue(0)) + 1
End If
Dr.Close()
con.Close()
Return id
Else
Dr.Close()
con.Close()
Return 1
End If
Catch ex As Exception
Dr.Close()
con.Close()
Return 1
Finally

End Try

End Function

soniarose
دوشنبه 04 آبان 1388, 18:02 عصر
سلام منظور از dr چیه؟ و من نمیخوام شماره رو از جدولم بگیرم بلکه همینجوری یک شماره در اون قرار بگیره

sari-1369
سه شنبه 05 آبان 1388, 23:58 عصر
ببخشید ، کد اصلاح شده :

Public Function GetMaxID(ByVal TableName As String, ByVal FieldName As String) As Decimal
Dim strcon As String
Dim con As SqlConnection
Dim Dr As SqlDataReader
strcon = "کانکشن استرینگ"
con = New SqlConnection(strcon)
Dim id As Decimal
Try
If con.State = ConnectionState.Open Then
con.Close()
End If
con.Open()
Dim cmd As System.Data.SqlClient.SqlCommand = New SqlCommand("select max(" & FieldName & ") from " & TableName & "", con)
Dr = cmd.ExecuteReader()

If Dr.HasRows = True Then
Dr.Read()
If Dr.IsDBNull(0) Then
id = 1
Else
id = System.Convert.ToDecimal(Dr.GetValue(0)) + 1
End If
Dr.Close()
con.Close()
Return id
Else
Dr.Close()
con.Close()
Return 1
End If
Catch ex As Exception
Dr.Close()
con.Close()
Return 1
Finally

End Try

End Function

soniarose
چهارشنبه 06 آبان 1388, 18:47 عصر
سلام این کدی که شما قرار دادید فقط یک شماره رو قرار میده من میخوام مثل یک شمارنده کار کنه و هر دفعه که فرم لود میشه یک شماره اضافه بشه ممنون

soniarose
جمعه 08 آبان 1388, 12:31 عصر
از دوستان کسی نیست که کمک کنه

ali_md110
جمعه 08 آبان 1388, 14:28 عصر
نوع فیلد بانکتون رو به uniqueidentifier یا nvarchar تغییر بدید
و از استراکچر Guid استفاده میکنیم
سازه Guid در فضا نام system پیاده سازی میشه و نشاندهنده یک شناسه یکتای جهانی هست و این استراکچر هیچ وقت مقدار شبیه به هم تولید نمیکنه
فقط کافیه متد NewGuid رو فراخوانی کنیم
بدین صورت

textbox1.text=Guid.NewGuid.Tostring

Navid Asadi
جمعه 08 آبان 1388, 21:17 عصر
میتونی از ریجستری هم استفاده کنی
اگه میخوای این کار رو بکنی از SaveSetting استفاده کن ... اگه تو تاپیکام بگردی یه تاپیک کامل پیدا میکنی...

sari-1369
جمعه 08 آبان 1388, 21:43 عصر
سلام این کدی که شما قرار دادید فقط یک شماره رو قرار میده من میخوام مثل یک شمارنده کار کنه و هر دفعه که فرم لود میشه یک شماره اضافه بشه ممنون

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

soniarose
شنبه 09 آبان 1388, 17:00 عصر
سلام استراکچر guid که شما قرار دادید یک رشته تولید میکنه که هم شامل عدده هم حرف ولی من میخوام فقط عدد تولید کنه ممنون

sari-1369
شنبه 09 آبان 1388, 19:06 عصر
من متوجه نشدم چی میگید .

soniarose
یک شنبه 10 آبان 1388, 17:13 عصر
من قبلا توضیح دادم من میخوام اعداد تکراری ایجاد نکنه ولی من که برنامه شمارو تست کردم فقط یک عدد رو برمیگردونه

sari-1369
یک شنبه 10 آبان 1388, 18:00 عصر
همیشه 1 بر میگردونه ؟ به احتمال زیاد یه جای اشکال داری که میافته تو Cach یا اینکه توی جدولت داده ای نداری و 1 رو بهت برمیگردونه .

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

sari-1369
یک شنبه 10 آبان 1388, 18:01 عصر
کد هاتو بزار ببینم چطوری ازش استفاده کردی .

soniarose
یک شنبه 10 آبان 1388, 18:25 عصر
من این کدها رو توی فرم لود گذاشتم ولی بازم فقط یک برمیگردونه . منظورتون از اینکه توی جدولم داده ندارم چیه ؟

sari-1369
یک شنبه 10 آبان 1388, 22:14 عصر
اگر فقط
strcon = "کانکشن استرینگ" + TableName + FieldName رو درست وارد کنی تابع درست کار میکنه .

یه نگاه کن ببین درست وارد کردی .

soniarose
دوشنبه 11 آبان 1388, 17:50 عصر
این کدهایی هست که من در برنامم قرار میدم


Public Function GetMaxID(ByVal Table1 As String, ByVal id As String) As Decimal
Dim strcon As String


Dim con As SqlClient.SqlConnection
Dim Dr As SqlClient.SqlDataReader
strcon = "Data Source=(local);Initial Catalog=tel;Integrated Security=True"
con = New SqlClient.SqlConnection(strcon)

Try
If con.State = ConnectionState.Open Then
con.Close()
End If
con.Open()
Dim cmd As System.Data.SqlClient.SqlCommand = New SqlClient.SqlCommand("select max(" & id & ") from (" & Table1 & ")", con)
Dr = cmd.ExecuteReader()

If Dr.HasRows = True Then
Dr.Read()
If Dr.IsDBNull(0) Then
id = 1
Else
id = System.Convert.ToDecimal(Dr.GetValue(0)) + 1
End If
Dr.Close()
con.Close()
Return id
Else
Dr.Close()
con.Close()
Return 1
End If
Catch ex As Exception

con.Close()
Return 1
Finally

End Try



End Function
TextBox1.Text = GetMaxID("Table1", "id")

sari-1369
دوشنبه 11 آبان 1388, 23:52 عصر
این نمونه برنامه رو ببین ( خودم واسه آزمایش 3 تا رکورد توش درج کردم )

soniarose
شنبه 16 آبان 1388, 17:37 عصر
از راهنماییتون ممنونم مشکلم حل شد