ghayour
08-08-2012, 16:45
سلام
من يک پروژه دفترچه تلفن با vb.net ساختم. مي خواهم اطلاعات تکراري در ديتابيس ذخيره نشه و يک پيام بده که قبلا اين ثبت شده. منظورم براساس سه تا تکس باکسه، ببينه که تکراري هست يانه! مثلا اگر کسي را در تکس باکس نوشتيم تا ذخيره کند و نام و نام خانوادگي و سمت همون فرد قبلا ثبت شده باشد، يعني در يک سطر از ديتابيس، نام و نام خانوادگي و سمت فرد مورد نظر ما باهم(در يک سطر) از قبل وجود داشت ديگر ثبت نشود. اميدوارم منظورم را فهميده باشيد.
من کدي در اين رابطه نوشتم اما در ديتابيس در يک سطر جستجو نميکند بلکه در هر جايي که وجود داشته باشد مي گردد.
لطفا کمکم کنيد!!
اين هم کدي که در دکمه ذخيره نوشتم:
Dim con As New System.Data.OleDb.OleDbConnection
Dim com As New System.Data.OleDb.OleDbCommand
con.ConnectionString = ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\Phone.accdb")
Dim table As String
Dim table1 As String
Dim table2 As String
Dim d As String
Dim d1 As String
Dim d2 As String
Dim ds As New DataSet
table = "select * from tblPhone where نام=" + "'" + txtFirstName.Text + "'"
table1 = "select * from tblPhone where خانوادگي=" + "'" + txtLastName.Text + "'"
table2 = "select * from tblPhone where سمت=" + "'" + cboTitle.Text + "'"
Dim da As OleDbDataAdapter = New OleDbDataAdapter(table, con)
Dim da1 As OleDbDataAdapter = New OleDbDataAdapter(table1, con)
Dim da2 As OleDbDataAdapter = New OleDbDataAdapter(table2, con)
d = da.Fill(ds, "tblPhone")
d1 = da1.Fill(ds, "tblPhone")
d2 = da2.Fill(ds, "tblPhone")
If (d = True And d1 = True And d2 = True) Then
MessageBox.Show("فرد مورد نظر شما قبلا ثبت شده است", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error)
Else
com.Connection = con
com.CommandText = "INSERT INTO tblPhone (نام, خانوادگي, سمت, موبايل1, موبايل2, تلفن1, تلفن2, آدرس) VALUES(@نام, @خانوادگي, @سمت, @موبايل1, @موبايل2, @تلفن1, @تلفن2, @آدرس)"
com.Parameters.Clear()
com.Parameters.AddWithValue("@نام", txtFirstName.Text)
com.Parameters.AddWithValue("@خانوادگي", txtLastName.Text)
com.Parameters.AddWithValue("@سمت", cboTitle.Text)
com.Parameters.AddWithValue("@موبايل1", txtMobile1.Text)
com.Parameters.AddWithValue("@موبايل2", txtMobile2.Text)
com.Parameters.AddWithValue("@تلفن1", txtPhone1.Text)
com.Parameters.AddWithValue("@تلفن2", txtPhone2.Text)
com.Parameters.AddWithValue("@آدرس", txtAdress.Text)
con.Open()
com.ExecuteNonQuery()
con.Close()
com.Dispose()
con.Dispose()
End If
من يک پروژه دفترچه تلفن با vb.net ساختم. مي خواهم اطلاعات تکراري در ديتابيس ذخيره نشه و يک پيام بده که قبلا اين ثبت شده. منظورم براساس سه تا تکس باکسه، ببينه که تکراري هست يانه! مثلا اگر کسي را در تکس باکس نوشتيم تا ذخيره کند و نام و نام خانوادگي و سمت همون فرد قبلا ثبت شده باشد، يعني در يک سطر از ديتابيس، نام و نام خانوادگي و سمت فرد مورد نظر ما باهم(در يک سطر) از قبل وجود داشت ديگر ثبت نشود. اميدوارم منظورم را فهميده باشيد.
من کدي در اين رابطه نوشتم اما در ديتابيس در يک سطر جستجو نميکند بلکه در هر جايي که وجود داشته باشد مي گردد.
لطفا کمکم کنيد!!
اين هم کدي که در دکمه ذخيره نوشتم:
Dim con As New System.Data.OleDb.OleDbConnection
Dim com As New System.Data.OleDb.OleDbCommand
con.ConnectionString = ("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=E:\Phone.accdb")
Dim table As String
Dim table1 As String
Dim table2 As String
Dim d As String
Dim d1 As String
Dim d2 As String
Dim ds As New DataSet
table = "select * from tblPhone where نام=" + "'" + txtFirstName.Text + "'"
table1 = "select * from tblPhone where خانوادگي=" + "'" + txtLastName.Text + "'"
table2 = "select * from tblPhone where سمت=" + "'" + cboTitle.Text + "'"
Dim da As OleDbDataAdapter = New OleDbDataAdapter(table, con)
Dim da1 As OleDbDataAdapter = New OleDbDataAdapter(table1, con)
Dim da2 As OleDbDataAdapter = New OleDbDataAdapter(table2, con)
d = da.Fill(ds, "tblPhone")
d1 = da1.Fill(ds, "tblPhone")
d2 = da2.Fill(ds, "tblPhone")
If (d = True And d1 = True And d2 = True) Then
MessageBox.Show("فرد مورد نظر شما قبلا ثبت شده است", "خطا", MessageBoxButtons.OK, MessageBoxIcon.Error)
Else
com.Connection = con
com.CommandText = "INSERT INTO tblPhone (نام, خانوادگي, سمت, موبايل1, موبايل2, تلفن1, تلفن2, آدرس) VALUES(@نام, @خانوادگي, @سمت, @موبايل1, @موبايل2, @تلفن1, @تلفن2, @آدرس)"
com.Parameters.Clear()
com.Parameters.AddWithValue("@نام", txtFirstName.Text)
com.Parameters.AddWithValue("@خانوادگي", txtLastName.Text)
com.Parameters.AddWithValue("@سمت", cboTitle.Text)
com.Parameters.AddWithValue("@موبايل1", txtMobile1.Text)
com.Parameters.AddWithValue("@موبايل2", txtMobile2.Text)
com.Parameters.AddWithValue("@تلفن1", txtPhone1.Text)
com.Parameters.AddWithValue("@تلفن2", txtPhone2.Text)
com.Parameters.AddWithValue("@آدرس", txtAdress.Text)
con.Open()
com.ExecuteNonQuery()
con.Close()
com.Dispose()
con.Dispose()
End If