PDA

View Full Version : سوال: كنترل تكراري نبودن اطلاعات در بانك



omidquest
سه شنبه 17 آبان 1390, 20:19 عصر
سلام
من يه بانك دارم كه توي اون يك سري اطلاعات هستش ، يكي از فيلد هاي اين بانك كد ملي افراد ثبت نام شده هست

حالا من توي فرم ثبت نام چطوري كنترول كنم كه اگر كد ملي وارد شده در تكس باكس توسط كاربر قبلا توي بانك بوده از ثبت نام جلو گيري كنم

ممنونم
در ضمن developer : vb.net 2010 & Data base :Sql Server2008

مرتضی تقدمی
سه شنبه 17 آبان 1390, 20:30 عصر
سلام
توی این قطعه کد اگه ID تکراری باشه, true بر می گردونه :


Dim str As String
str = "IF EXISTS(SELECT ID FROM TBL_NAME WHERE ID='" & your_id & "') SELECT 1 ELSE SELECT 0"
CM = New SqlCommand(str, SC)
If SC.State = ConnectionState.Closed Then
SC.Open()
End If
DR.Close()
Dim bool As Boolean = Convert.ToBoolean(CM.ExecuteScalar())
DR.Close()
SC.Close()
If (bool) Then
Return True
End If
Return False

موفق باشید

omidquest
سه شنبه 17 آبان 1390, 20:35 عصر
ممنون ميشم اگه يه توضيح كوچيك هم در مورد نحوه استفاده اين كد بهم بدين

مرتضی تقدمی
سه شنبه 17 آبان 1390, 20:45 عصر
با دستورات SQL و ارتباط برنامه با بانک اطلاعاتی که آشنایی دارید. شما تو کوئری می تونی بجای ID اسم فیلد (کد ملی) رو بذاری و بجای your_id هم مقداری که می خوای با اون چک بشه رو قرار بده. بجای TBL_NAME هم نام جدول رو بذار. اگه این مقدار توی بانک وجود داشته باشه true رو بر می گردونه.

omidquest
سه شنبه 17 آبان 1390, 21:13 عصر
آقاي تقدمي شرمنده ولي توي اين كد منظور از ‍CM و SC و DR چي هست ؟؟؟ براي اينها نبايد شرايط تعريف متغيير رو ايجاد كرد؟؟؟ اگر بله چه نوعي؟

مرتضی تقدمی
سه شنبه 17 آبان 1390, 21:23 عصر
Public SC As New SqlConnection
Public CM As New SqlCommand
Public DR As SqlDataReader




Dim str As String
str = "Data Source =.\SQLEXPRESS ; AttachDBFileName=PATH_DATABASE_FILE.MDF; Connect Timeout=30; Integrated Security=true "
SC.ConnectionString = str
CM.Connection = SC

omidquest
سه شنبه 17 آبان 1390, 22:11 عصر
77606به اين مشكل برخوردم
اون دو تا خط آخر هم كه rem شده ارور بود من rem كردم تا بتونم bugesho نشونتون بدم

مرتضی تقدمی
سه شنبه 17 آبان 1390, 22:21 عصر
شما جای این خط چی می ذارین ؟


"IF EXISTS(SELECT ID FROM TBL_NAME WHERE ID='" & your_id & "') SELECT 1 ELSE SELECT 0"

کامل بذارید تا ببینم.

omidquest
سه شنبه 17 آبان 1390, 22:27 عصر
Public SC As New SqlConnection
Public CM As New SqlCommand
Public DR As SqlDataReader

Private Sub but_ozv_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles but_ozv.Click

Dim str As String
str = "Data Source=174.142.61.255;Persist Security Info=True;Password=123456789;User ID=kuhsan "
SC.ConnectionString = str
CM.Connection = SC
CM = New SqlCommand(str, SC)
If SC.State = ConnectionState.Closed Then
SC.Open()
End If
'DR.Close()
Dim bool As Boolean = Convert.ToBoolean(CM.ExecuteScalar())
DR.Close()
SC.Close()
If (bool = True) Then
'Return True
Else
'Return False
End If

End Sub
End Class

مرتضی تقدمی
سه شنبه 17 آبان 1390, 22:37 عصر
اینو تست کن. به توضیحات پست 4 هم دقت کن.


Public SC As New SqlConnection
Public CM As New SqlCommand
Public DR As SqlDataReader

Private Sub but_ozv_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles but_ozv.Click
Dim str As String
Dim bool As Boolean

str = "Data Source=174.142.61.255;Persist Security Info=True;Password=123456789;User ID=kuhsan "
SC.ConnectionString = str
CM.Connection = SC

str = "IF EXISTS(SELECT ID FROM TBL_NAME WHERE ID='" & your_id & "') SELECT 1 ELSE SELECT 0"
CM = New SqlCommand(str, SC)
bool = Convert.ToBoolean(CM.ExecuteScalar())
DR.Close()
SC.Close()
If (bool = True) Then
'کد تکراری است
End If
End Sub

omidquest
سه شنبه 17 آبان 1390, 22:53 عصر
يه سوال !!!
خط 16 . 17 در كد شما ما 2 تا موضوع DR و SC رو close كرديم ولي من جايي نميبينم open شده باشه
الان هم داره ارور همين رو ميده!!!!!

مرتضی تقدمی
سه شنبه 17 آبان 1390, 23:22 عصر
برای اجرا و استفاده از کوئری ها باید ابتدا کانکشن رو توسط دستور sc.open باز کنید. در پایان کار هم بهتر است آن را ببندید. در اینجا قبل از اجرای دستور کوئری باید باز شود.

omidquest
چهارشنبه 18 آبان 1390, 10:13 صبح
77630
دوباره سلام الان داره اين اررو رو ميده چرا؟؟؟؟؟
من كدهاي كامل رو براتون ميزارم

Public SC As New SqlConnection
Public CM As New SqlCommand
Public DR As SqlDataReader

Private Sub but_ozv_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles but_ozv.Click
Dim str As String
Dim bool As Boolean

str = "Data Source=255.148.81.155 ;Persist Security Info=True;Password=123456789;User ID=kuhsan "
SC.ConnectionString = str
CM.Connection = SC
'''''''''''''''''''''''''''''''
SC.Open()
'''''''''''''''''''''''''''''
str = "IF EXISTS(SELECT cod_user FROM user_ozv WHERE cod_user='" & tb_cod.Text & "') SELECT 1 ELSE SELECT 0"
CM = New SqlCommand(str, SC)
bool = Convert.ToBoolean(CM.ExecuteScalar())
DR.Close()
SC.Close()
If (bool = True) Then
MsgBox("کد تکراری است")
End If
End Sub

omidquest
چهارشنبه 18 آبان 1390, 11:20 صبح
مشكل حل شد از صبر شما بي هايت ممنونم
براي دوستاني كه بعدا اين تاپيك رو دنبال ميكنن عرض ميكنم
از خط 20 تا 22 كد هاي بالا (شرط اينكه مقدار true هست يا نه ) بايد قبل از بستن كانكشن نوشته بشه

يا علي !!!