سلام
من هم این روش رو استفاده کردم :
        Connection.Open()
ad = New SqlDataAdapter("select * from Table1 where Catgory='" & TextBox1.Text & "'", Connection)
Dim ds2 As New DataSet
ad.Fill(ds2, "Table1")
If ds2.Tables(0).Rows.Count = 0 Then

Dim cmd As New SqlCommand("Insert into Table1 (Catgory) Values(@p1)", Connection)
cmd = New SqlCommand("IF EXISTS(SELECT * FROM yourTableName WHERE id=@id) SELECT 1 ELSE SELECT 0", Connection)
If Connection.State = ConnectionState.Closed Then Connection.Open()
With cmd
.Parameters.Clear()
.Parameters.AddWithValue("@p1", TextBox1.Text.Trim)
.ExecuteNonQuery()
End With

ElseIf ds2.Tables(0).Rows.Count <> 0 Then
ExpandablePanel1.Text = "نام کاربر تکراری است"
ExpandablePanel1.Expanded = True
Timer1.Enabled = True
Exit Sub

End If

هم این روش :

If ExistRecord("Catgory") Then
If Connection.State <> ConnectionState.Open Then
Connection.Open()
Dim cmd As New SqlCommand("Insert into Table1 (Catgory) Values(@p1)", Connection)
If Connection.State = ConnectionState.Closed Then Connection.Open()
With cmd
.Parameters.Clear()
.Parameters.AddWithValue("@p1", TextBox1.Text.Trim)
.ExecuteNonQuery()
End With
'ExpandablePanel1.Expanded = True
'ExpandablePanel1.Text = "اطلاعات با موفقيت ذخيره شد"
'Timer1.Enabled = True
TextBox1.Clear()
'Connection.Close()
MsgBox("شخص مورد نظر با موفقيت ثبت شد", MsgBoxStyle.Information)
Else
MsgBox("فردي با نام وارد شده قبلاً درپايگاه داده ثبت شده است", MsgBoxStyle.Exclamation)
End If


البته در مورد کد دوم هر بار که فرم رو باز می کنم بار اول کار نمی کنه دوباره که وارد می کنم جلوگیری میکنه ولی باز فرم رو که می بندم باز روز از نو و روزی از نو

تازه هر کدوم رو هم کلی دست کاری کردم بازم نشد .
کمک کنید لطفا دارم دیونه میشم به خدا .