المشاركات : 6
المواضيع 3
الإنتساب : Oct 2018
السمعة :
0
الشكر: 1
تم شكره 1 مرات في 1 مشاركات
السلام عليكم
مشكلة واجهتني وهي ابي عدم تكرار الارقام المدخلة من قبل المستخدم في قاعدة البيانات
للمعلومات قاعدة البيانات DB1 والجدول اسمة information والحقل اسمة NomBook وهو من نوع رقم وكذلك يوجد علية مفتاح اساسي
وفي textbox1.text في الفجول بيسك
حاول بطريقة كما ترون في الصورة لكن ما نفعت يطلعلي هذا error
المشاركات : 2
المواضيع 0
الإنتساب : Oct 2018
السمعة :
1
الشكر: 0
تم شكره 2 مرات في 2 مشاركات
VB6 :
PHP كود :
If rs.State = adStateOpen Then rs.Close rs.Open "SELECT * FROM [information ] WHERE [NomBook ]=" & Trim$(Text1.Text) & _ "", db, adOpenStatic, adLockOptimistic If rs.RecordCount <> 0 Then MsgBox "record exists", vbCritical + vbOKOnly + vbMsgBoxRight, "Error" Exit Sub Else ' Put your add record here End If
VB.net :
PHP كود :
If TextBox1.Text = "" Then MsgBox("Please fill-up all fields!", MsgBoxStyle.Exclamation, "Add New Customer!") Else Dim theQuery As String = "SELECT * FROM information WHERE NomBook =@NomBook" Dim cmd1 As SqlCommand = New SqlCommand(theQuery, con) cmd1.Parameters.AddWithValue("@NomBook", TextBox1.Text) Using reader As SqlDataReader = cmd1.ExecuteReader() If reader.HasRows Then ' record already exists MsgBox("record exists!", MsgBoxStyle.Exclamation, "Add New User!") Else ' record does not exist, ' add code here
End If End Using
con.Close()
المشاركات : 6
المواضيع 3
الإنتساب : Oct 2018
السمعة :
0
الشكر: 1
تم شكره 1 مرات في 1 مشاركات
(15-10-18, 11:06 PM)سعداء كتب : VB6 :
PHP كود :
If rs.State = adStateOpen Then rs.Close rs.Open "SELECT * FROM [information ] WHERE [NomBook ]=" & Trim$(Text1.Text) & _ "", db, adOpenStatic, adLockOptimistic If rs.RecordCount <> 0 Then MsgBox "record exists", vbCritical + vbOKOnly + vbMsgBoxRight, "Error" Exit Sub Else ' Put your add record here End If
VB.net :
PHP كود :
If TextBox1.Text = "" Then MsgBox("Please fill-up all fields!", MsgBoxStyle.Exclamation, "Add New Customer!") Else Dim theQuery As String = "SELECT * FROM information WHERE NomBook =@NomBook" Dim cmd1 As SqlCommand = New SqlCommand(theQuery, con) cmd1.Parameters.AddWithValue("@NomBook", TextBox1.Text) Using reader As SqlDataReader = cmd1.ExecuteReader() If reader.HasRows Then ' record already exists MsgBox("record exists!", MsgBoxStyle.Exclamation, "Add New User!") Else ' record does not exist, ' add code here
End If End Using
con.Close()
استاذي العزيز اول شي مشكور على الرد الجميل والسريع ومقصرت
لكن في مشكلة بالاتصال مقبلة مع العلم اني معرف الاتصال con ع العموم اني حملتلك الملف وانته شوفه
https://up.top4top.net/downloadf-101813dgf1-rar.html
المشاركات : 6
المواضيع 3
الإنتساب : Oct 2018
السمعة :
0
الشكر: 1
تم شكره 1 مرات في 1 مشاركات
هل يوجد حل شباب لان الكود مو شغال
المشاركات : 112
المواضيع 0
الإنتساب : Oct 2018
السمعة :
22
الشكر: 1520
تم شكره 260 مرات في 146 مشاركات
جرب هذا
كود :
Imports System.Data.OleDb
Public Class Form1
Dim con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=DB1.accdb")
Dim DA As New OleDbDataAdapter("SELECT * FROM [information]", con)
Dim DT As New DataTable
Sub sava()
' تحديث قاعدة البيانات
Dim SA As New OleDbCommandBuilder(DA)
SA.QuotePrefix = ("[")
SA.QuoteSuffix = ("]")
DA.Update(DT)
DT.AcceptChanges()
' إعادة تعبئة الداتاجريدفيو
DT.Clear()
DA.Fill(DT)
DG1.DataSource = DT
' إظهار السطر المضاف أخيراً
DG1.ClearSelection()
DG1.FirstDisplayedScrollingRowIndex = DG1.Rows.Count - 1
DG1.Rows(DG1.Rows.Count - 1).Cells(0).Selected = True
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' إعادة تعبئة الداتاجريدفيو
DA.Fill(DT)
DG1.DataSource = DT
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' التأكد من إدخال بيانات رقم الكتاب
If Not IsNumeric(TextBox1.Text) Then
MessageBox.Show("ادخل رقم الكتاب من فضلك")
TextBox1.Focus()
Return
End If
' التأكد من إدخال بيانات الموضوع
If TextBox2.Text.Trim = "" Then
MessageBox.Show("ادخل الموضوع من فضلك")
TextBox2.Focus()
Return
End If
' التأكد من إدخال بيانات الجهة الصادر منها
If TextBox3.Text.Trim = "" Then
MessageBox.Show("ادخل الجهة الصادر منها من فضلك")
TextBox3.Focus()
Return
End If
' التأكد من إدخال بيانات اضبارة الحفظ
If TextBox4.Text.Trim = "" Then
MessageBox.Show("ادخل اضبارة الحفظ من فضلك")
TextBox4.Focus()
Return
End If
Try
' فتح الإتصال إذا لم يكن مفتوحات=
If con.State <> ConnectionState.Open Then con.Open()
' التأكد من وجود رقم الكتاب مسبقا
Dim cmd As New OleDbCommand("SELECT COUNT([NumBook]) FROM [information] WHERE [NumBook]=? ", con)
cmd.Parameters.AddWithValue("@", Val(TextBox1.Text))
If cmd.ExecuteScalar > 0 Then
' رقم الكتاب موجود مسبقا
MsgBox("record exists!", MsgBoxStyle.Exclamation, "Add New User!")
Return
End If
' إضافة البيانات الجديدة
Dim row As DataRow = DT.NewRow
row.Item(1) = DateTimePicker1.Value.ToString("dd/MM/yyyy")
row.Item(2) = TextBox1.Text
row.Item(3) = DateTimePicker2.Value.ToString("dd/MM/yyyy")
row.Item(4) = TextBox2.Text
row.Item(5) = TextBox3.Text
row.Item(6) = TextBox4.Text
row.Item(7) = TextBox5.Text
DT.Rows.Add(row)
' حفظ الكتاب الجديد
sava()
MessageBox.Show("تم الحفظ بنجاح")
' إفراغ الأدوات لإضافة جديدة
For Each c As Control In Controls
If TypeOf c Is TextBox Then c.Text = ""
Next
' نقل التحكم إلى رقم الكتاب
TextBox1.Focus()
Catch ex As Exception
' عرض رسالة الخطأ
MessageBox.Show(ex.Message)
Finally
' إغلاق الإتصال
con.Close()
End Try
End Sub
End Class
المشاركات : 6
المواضيع 3
الإنتساب : Oct 2018
السمعة :
0
الشكر: 1
تم شكره 1 مرات في 1 مشاركات
(16-10-18, 10:19 AM)rnmr كتب : جرب هذا
كود :
Imports System.Data.OleDb
Public Class Form1
Dim con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=DB1.accdb")
Dim DA As New OleDbDataAdapter("SELECT * FROM [information]", con)
Dim DT As New DataTable
Sub sava()
' تحديث قاعدة البيانات
Dim SA As New OleDbCommandBuilder(DA)
SA.QuotePrefix = ("[")
SA.QuoteSuffix = ("]")
DA.Update(DT)
DT.AcceptChanges()
' إعادة تعبئة الداتاجريدفيو
DT.Clear()
DA.Fill(DT)
DG1.DataSource = DT
' إظهار السطر المضاف أخيراً
DG1.ClearSelection()
DG1.FirstDisplayedScrollingRowIndex = DG1.Rows.Count - 1
DG1.Rows(DG1.Rows.Count - 1).Cells(0).Selected = True
End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' إعادة تعبئة الداتاجريدفيو
DA.Fill(DT)
DG1.DataSource = DT
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' التأكد من إدخال بيانات رقم الكتاب
If Not IsNumeric(TextBox1.Text) Then
MessageBox.Show("ادخل رقم الكتاب من فضلك")
TextBox1.Focus()
Return
End If
' التأكد من إدخال بيانات الموضوع
If TextBox2.Text.Trim = "" Then
MessageBox.Show("ادخل الموضوع من فضلك")
TextBox2.Focus()
Return
End If
' التأكد من إدخال بيانات الجهة الصادر منها
If TextBox3.Text.Trim = "" Then
MessageBox.Show("ادخل الجهة الصادر منها من فضلك")
TextBox3.Focus()
Return
End If
' التأكد من إدخال بيانات اضبارة الحفظ
If TextBox4.Text.Trim = "" Then
MessageBox.Show("ادخل اضبارة الحفظ من فضلك")
TextBox4.Focus()
Return
End If
Try
' فتح الإتصال إذا لم يكن مفتوحات=
If con.State <> ConnectionState.Open Then con.Open()
' التأكد من وجود رقم الكتاب مسبقا
Dim cmd As New OleDbCommand("SELECT COUNT([NumBook]) FROM [information] WHERE [NumBook]=? ", con)
cmd.Parameters.AddWithValue("@", Val(TextBox1.Text))
If cmd.ExecuteScalar > 0 Then
' رقم الكتاب موجود مسبقا
MsgBox("record exists!", MsgBoxStyle.Exclamation, "Add New User!")
Return
End If
' إضافة البيانات الجديدة
Dim row As DataRow = DT.NewRow
row.Item(1) = DateTimePicker1.Value.ToString("dd/MM/yyyy")
row.Item(2) = TextBox1.Text
row.Item(3) = DateTimePicker2.Value.ToString("dd/MM/yyyy")
row.Item(4) = TextBox2.Text
row.Item(5) = TextBox3.Text
row.Item(6) = TextBox4.Text
row.Item(7) = TextBox5.Text
DT.Rows.Add(row)
' حفظ الكتاب الجديد
sava()
MessageBox.Show("تم الحفظ بنجاح")
' إفراغ الأدوات لإضافة جديدة
For Each c As Control In Controls
If TypeOf c Is TextBox Then c.Text = ""
Next
' نقل التحكم إلى رقم الكتاب
TextBox1.Focus()
Catch ex As Exception
' عرض رسالة الخطأ
MessageBox.Show(ex.Message)
Finally
' إغلاق الإتصال
con.Close()
End Try
End Sub
End Class
تسلم اخي العزيز الكود شغال والحمد لله كان عندي اشوية اخطاء ممنتبه عليهن والحمد لله انت صححتلي الموضوع مرة اخرى مشكور
|