PDA

View Full Version : سوال: ارتباط با SQL Server و مشکل ثبت رکورد و پبدا کردن یک رکورد



dead-d3vil
چهارشنبه 23 اسفند 1391, 01:18 صبح
با سلام
یه فرم ثبت نام دارم که اطلاعات رو تو یه دیتابیس SQL ثبت می کنه، قبلا می کرد الان نمی کنه :لبخند:


Private Sub btnSignup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSignup.Click


Dim chn, res, ra As Integer
Dim s1, s2, s3 As String



Dim objRandomNumberGenerator As New System.Random
Dim strPassword As String = ""
Dim intX As Integer

s1 = txtEmail.Text
s2 = ComboBox1.SelectedItem
s3 = s1 + "@" + s2
For intX = 1 To 8



'Digit
strPassword &= Chr(objRandomNumberGenerator.Next(48, 58))



Next


txtUserid.Text = strPassword


Dim connectionString As String = "Data Source=MAHDI-PC\SQLEXPRESS;Initial Catalog=General_Data_User;Integrated Security=True"


Dim cn1 As New SqlConnection(connectionString)
cn1.Open()
Dim cmd1 As New SqlCommand()
cmd1.CommandText = "SELECT count(*) FROM dbo.Personal_Table WHERE [Username]='" & txtUsername.Text & "'"
cmd1.Connection = cn1
ra = cmd1.ExecuteScalar
If (ra > 0) Then
MessageBox.Show("Your Username is'nt Available", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
txtUsername.Clear()
txtPassword.Clear()
txtRPassword.Clear()





Else



chn = Len(txtPassword.Text)
If txtPassword.Text = txtRPassword.Text Then
If chn > 5 Then



Try



Using cn As New SqlConnection(connectionString)
cn.Open()

Dim cmd As New SqlCommand()
cmd.CommandText = "INSERT INTO dbo.Personal_Table ( Userid, Name, Family, Username, Password,RetypePassword, Email, Field) VALUES(@A,@B,@C,@D,@E,@F,@G,@H)"

Dim param1 As New SqlParameter()
param1.ParameterName = "@A"
param1.Value = txtUserid.Text.Trim()
cmd.Parameters.Add(param1)

Dim param2 As New SqlParameter()
param2.ParameterName = "@B"
param2.Value = txtName.Text.Trim()
cmd.Parameters.Add(param2)

Dim param3 As New SqlParameter()
param3.ParameterName = "@C"
param3.Value = txtFamily.Text.Trim()
cmd.Parameters.Add(param3)

Dim param4 As New SqlParameter()
param4.ParameterName = "@D"
param4.Value = txtUsername.Text.Trim()
cmd.Parameters.Add(param4)

Dim param5 As New SqlParameter()
param5.ParameterName = "@E"
param5.Value = txtPassword.Text.Trim()
cmd.Parameters.Add(param5)
Dim param6 As New SqlParameter()
param6.ParameterName = "@F"
param6.Value = txtRPassword.Text.Trim()
cmd.Parameters.Add(param6)

Dim param7 As New SqlParameter()
param7.ParameterName = "@G"
param7.Value = s3
cmd.Parameters.Add(param7)

Dim param8 As New SqlParameter()
param8.ParameterName = "@H"
param8.Value = txtField.Text.Trim()
cmd.Parameters.Add(param8)

cmd.Connection = cn
cmd.ExecuteNonQuery()
cn.Close()
cn1.Close()


End Using
MessageBox.Show("Transfer Complete", "Transfer", MessageBoxButtons.OK, MessageBoxIcon.Information)

txtEmail.Clear()
txtFamily.Clear()
txtField.Clear()
txtField.Clear()
txtName.Clear()
txtPassword.Clear()
txtRPassword.Clear()
txtUsername.Clear()
txtUserid.Clear()


Catch
MessageBox.Show("Your account was not created.Please try again.", "Error", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error)
End Try

Else
MessageBox.Show("Your Password must be atleast 6 Character ! ", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)

End If

Else

res = MessageBox.Show("Your Password doesn't Match !", "Password", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error)
If res = 4 Then
txtPassword.Clear()
txtRPassword.Clear()
End If
End If
End If



















End Sub






این از اولی و در مورد سوال دوم اینکه یه صفحه هم گذاشتم برای پیدا کردن پسورد با دادن مشخصات دیگه
که اونم اصلا کار نمی کنه

Private Sub btnSubmit1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSubmit1.Click

Dim ConString1 As String = "Data Source=MAHDI-PC\SQLEXPRESS;Initial Catalog=General_Data_User;Integrated Security=True"
Dim dbcon1 As New SqlConnection(ConString1)
Dim strName, strFamily, strEmail As String


g_login = Me.txtUsername.Text

strName = Me.txtName.Text
strFamily = Me.txtFamily.Text
strEmail = Me.txtEmail.Text

If g_login = "" Or strEmail = "" Or strFamily = "" Or strName = "" Then

MessageBox.Show("You must fill all Fields", "Missing Info")

Me.txtUsername.Focus()

Return
End If

Dim strsql1 As String = "SELECT [Password], [Email] FROM dbo.Personal_Table WHERE [Username]='" & g_login & "' And [Name]= '" & txtName.Text & "' And [Family]= '" & txtFamily.Text & "' And [Email]= '" & txtEmail.Text & "' "

Dim cm1 As New SqlCommand
cm1.CommandText = strsql1
cm1.Connection = dbcon1
Dim dr1 As SqlDataReader
Dim valid1 As Boolean = False
Dim HasRows1 As Boolean = False

Try
dbcon1.Open()

dr1 = cm1.ExecuteReader

If dr1.HasRows Then

While dr1.Read

If g_login = dr1.Item("Username") And strEmail = dr1.Item("Email") Then

valid1 = True

End If

End While

HasRows1 = True

End If

dr1.Close()




Catch exO As Exception

MessageBox.Show(exO.Message)



Finally

If dbcon1.State = ConnectionState.Open Then

dbcon1.Close()

End If

cm1 = Nothing

dr1 = Nothing

dbcon1.Dispose()

GC.Collect()




If valid1 = True Then


Dim strPassword As String
strPassword = dr1.Item(1)


Dim SmtpServer As New SmtpClient()
Dim mail As New MailMessage()
S
SmtpServer.Port = 587 'used gamil outgoing TSL port here - enter your own
SmtpServer.Host = "smtp.gmail.com" 'used gmail as host - enter your own host
mail = New MailMessage()
mail.From = New MailAddress("mahdi.hadavand@gmail.com")
mail.To.Add(strEmail)
mail.Subject = "Password Founded"
mail.Body = "Dear User your Password is : " & strPassword
SmtpServer.Send(mail)
MessageBox.Show("Your Password was sent to Your Email", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information)









ElseIf HasRows1 = False Then

MessageBox.Show("Entered Username is'nt Found, try again!", "Information")

Me.txtUsername.Focus()

Me.txtUsername.Text = ""

Me.txtEmail.Text = ""

Me.txtFamily.Text = ""
Me.txtName.Text = ""


Else
MessageBox.Show("Incorrect Entered information", "Info")






End If

End Try









End Sub

dead-d3vil
چهارشنبه 23 اسفند 1391, 18:26 عصر
یعنی یکی پیدا نشد به این سوالای ما لطف کنه جواب بده :افسرده::ناراحت:

Reza Safa
چهارشنبه 23 اسفند 1391, 19:49 عصر
سلام متن error هم قرار تا بهتر بفهمیم مشکل کجاست

dead-d3vil
چهارشنبه 23 اسفند 1391, 22:59 عصر
در مورد Query اول که اطلاعات با تاخیر روی دیتابیس ثبت می شه ، در مورد دوم قصدم ایته که یوزری که پسوردش گم شده با استفاده از وارد کردن اطلاعات دیگه پسورد به ایمیلش فرستاده بشه ، حالا بخش فرستادن ایمیل به کنار ، Query رو دیتابیس کار می کنه اما داخل برنامه نه

Reza Safa
پنج شنبه 24 اسفند 1391, 12:32 عصر
سلام امیدوارم از حرف که می خوام بزنم ناراحت نشی اما خیلی جواب مساله پبچوندی
من یه کلاس میذارم از این کلاس برای ارتباط و sql command ها استفاده کن 100% جواب میگیری
http://social.msdn.microsoft.com/Forums/en-US/vbgeneral/thread/b7d4e087-4d51-4ba6-aee2-209f166d2d16/#b7d4e087-4d51-4ba6-aee2-209f166d2d16
در ارتباط با email من هم همانطور که در پست قبلیم گفتم باید error ها را ببینم متن اررو قرار بده نه ترجمش را