الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

درس في ADO.NET 2005

مثبّترائج
بدأه yaseralshikh في 31 يوليو 2006 · 202 رد · 80,577 مشاهدة · في ADO.NET
مشاركة: واتساب X فيسبوك تيليجرام
#176

شكرا يا استاذى و سوف اقوم بالبحث

#177

السلام عليكم

استاذى ياسر الشيخ

لو سمحت كنت عايز استفسر على حاجة الرسالة دى معناها اية

ExecuteReader: Connection Property has not been initialized

دى معناها اية انا رفقتلك المشروع معاه و ياريت تقولى الخطا فين

جزاك الله خيرا بهذا العلم الذى تفيد به الناس

the_new_datagride.rar

#178

السلام عليكم

استاذى ياسر انا اتبعت كل تعليماتك بس منجحتش انا مش عارف العمل اية

جزاك الله خيرا بهذا العلم الذى تفيد به الناس

#179

أخي مرسي ..

سبب الرساله هو أنك عند إعداد كائن الامر لم تعده بشكل جيد حيث أنك لم تمرر له كائن الاتصال ولذلك لم يتمكن كائن الامر من تنفيذ الأمر ExecuteReader ..

ولي ملاحظة أنت أستخدمت الوضعين المتصل والمنفصل في أن واحد وبدون سبب وجيه ، ويبدو لي أنك مرتبك ومتلخبط على الأخر ، أرجو أن تعمل بنصيحتي وتباشر التعلم من الدرس الذي كنت قد وجهتك إليه لانك لو قرأت الدرس ما كنت لتقع في مثل هذا الخطأ البسيط .. وإليك الكود بعد التعديل ..

Imports System.Data
Imports System.Data.OleDb

Public Class showindg
Dim constr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" & Application.StartupPath & "\addnewemp.mdb"
	Dim connection As New OleDbConnection(constr)
	Dim mydr As OleDbDataReader
	Dim cmd As New OleDbCommand
	Private Sub showindg_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
		Try
			connection.Open()
			Dim sql As String = "select * from emps"
			cmd.Connection = connection
			cmd.CommandType = CommandType.Text
			cmd.CommandText = sql
			mydr  = cmd.ExecuteReader
			Dim strString As String
			Do While mydr.Read
				strString = "id : " & mydr.Item("id_emps") & vbNewLine & "name : " & mydr.Item("name_emps") & vbNewLine & "tel : " & mydr.Item("tel_emps") & vbNewLine & "salary : " & mydr.Item("salary_emps")
				MsgBox(strString)
			Loop
		Catch ex As Exception
			MessageBox.Show(ex.Message)
		Finally
			connection.Close()
			mydr.Close()
		End Try
	End Sub
End Class

1 - سقوط الإنسان ليس فشلاً ، ولكن الفشل أن يبقى حيث سقط .

2 - الفاشلون قسمان : قسم فكر ولم يفعل ، وقسم فعل ولم يفكر .

-------------------------------------------------------

درس في ADO.NET 2005, التعامل مع الجداول المترابطة في ado.net 2005

درس في الإجراءات الفرعية ( العامة )

درس في ADO.NET من الصفر إلى الإحتراف .

#180

السلام عليكم اخى الكريم ياسر

اتقدم لك بالشكر لانى بجد لم اجد مثلك فى التعبير عن الكود بهذة البساطة .

الكود اشتغل بصورة سهلة جدا الله يكرمك والله بدعيلك من قلبى ان ربنا يزيدك من علمه بما تنفع بة الناس

جزاك الله كل الخير

#181

السلام عليكم ورحمه الله و بركاتة استاذى ياسر

تحية طيبة لاهل الجنة و بعد

كان عندى استفسار اخر فى السطر دا

daTheBankAndData.Fill(MyDS, "TheBankAndData")

"thebankanddata"

انا مش فاهم دى اية انا علمت عليها و عملت كليل يمين و اختارت go to definition و لكن فتحت كلاسات كتيرة و مفهمتش حاجة يا ريت تفيدنى فى دى

الى ما لا نهاية شكرا ليك و جزاك الله خيرا على فكرة انا مش بشكرك عشان انت بتساعدنى ولا كن عشان انت بتساعد الناس كلها و ربنا يزودك اكتر انت تستحق كتير الله معاك

#182

اخي مرسي ..

شرحها بالتفصيل تجده من خلال متابعتك للدروس الموجوده في الرابط التالي ...

/index.php?showtopic=115282

والله الموفق ..

1 - سقوط الإنسان ليس فشلاً ، ولكن الفشل أن يبقى حيث سقط .

2 - الفاشلون قسمان : قسم فكر ولم يفعل ، وقسم فعل ولم يفكر .

-------------------------------------------------------

درس في ADO.NET 2005, التعامل مع الجداول المترابطة في ado.net 2005

درس في الإجراءات الفرعية ( العامة )

درس في ADO.NET من الصفر إلى الإحتراف .

#183

السلام عليكم و رحمة الله و بركاتة الاستاذ الغلى ياسر الشيخ

شكرا على نصايحك الغالية و الله يجعلة فى ميزان حسناتك

و جارى البحث ................. :D

#184

السلام عليكم أخي ياسر

عندي فورم أضفت داخل groupbox أربعة lables وأربعة textbox

يحتوي على رقم الموظف وإسم الموظف ورقم هاتفة وراتبة

وgroupbox آخر يحتوي على خمسة butons وهي للإضافة والحذف والتعديل وحفظ التعديل والبحث وأربعة butons للسجل الاول والتالي والسجل السابق والسجل الجديد

ولكن تعبت وأنا أجرب أكواد موجودة لكن مورايضية تضبط معاي ماني عارفة ليه ممكن تساعدوني وتقولولي كيف بيكون شكل الكود

في groupbox1 ول groupbox2 وأنا أستخدم برنامج sql server وvisual studio .net 2003

أنا بإنتظار ردكم >>>>

موفق لكل خير

#185

السلام عليكم...

؟؟؟؟؟؟

#186
اقتباس
تعبت وأنا أجرب أكواد موجودة لكن مورايضية تضبط معاي ماني عارفة ليه ممكن تساعدوني وتقولولي كيف بيكون شكل الكود

للأسف لم تحددي المشكله ، كما أنك لم تحددي الكود المطلوب ..

أرجو إرفاق مثال ..

1 - سقوط الإنسان ليس فشلاً ، ولكن الفشل أن يبقى حيث سقط .

2 - الفاشلون قسمان : قسم فكر ولم يفعل ، وقسم فعل ولم يفكر .

-------------------------------------------------------

درس في ADO.NET 2005, التعامل مع الجداول المترابطة في ado.net 2005

درس في الإجراءات الفرعية ( العامة )

درس في ADO.NET من الصفر إلى الإحتراف .

#187

السلام عليكم أخ ياسر ..

ألحمدلله ألمشكلة تم حلها وذلك بفضل دروسك الرائعة والمفيدة ..

لكن ظهلرت لي مشكلة أخرى بالنسبة لكود الاضافة أضاف لي بيانات في قاعدة البيانات ولكن عند الكتابة في البرنامج باللغة العربية تتحول الكتابة في ألجدول الموجود في قاعدة

البيانات بهذا الشسكل؟؟؟؟؟؟ ؟؟؟؟ مكان كل حرف عربي يتم كتابتة في ال textbox مع أنني خزنت معلومات في ألجداول باللغة العربية وكله تمام ولكن لما أضيف البيانات عن طريق

ألنموذج تتحول ألكتابة إلى علامات إستفهام انقلب عقلي :wacko:

هذه المشكلة بالنسبة للحروف العربية فقط أما الأرقام والحروف الإنجليزية تكتب كما هي

من فضلك كيف يمكنني أن أحل هذه ألمشكلة .........

-waf

#188

مرحبا أخي Yaser

أنا قرأت دروسك وقمت بتطبيقها على مشروعي لكن من ضمن الاشياء التي لم يتم تطبيقها

التنقل بين السجبلات عندي بعض الاستفسارات فيها أتمنى يتسع صدرك لها فمثلا هذا الكود

MyCurrencyManager.Position = 0

' Show the current record position...

ShowPosition()

إلى ماذا يرمز هذا MyCurrencyManager

وأين يتم التعريف عنه وفي أي حدث

عندي إستفسار آخر إذا ممكن

عندي فورم للدخول ولكن أبغاها تكون محملة داخل الفورم الأساسي Form1 داخل الفورم الاول كتبت الكود التالي

في Form1_load

Dim f2 as new form2

f2.show

كتبت هذا الكود ولكن عند إدخال كلمة السر وإسم المستخدم وأنقر على button1 للدخول

ماتدخلني على الفورم ألأساسي وتظل الفورم الاول معروض (فورم الدخول )

إذا ممكن ترد على تساؤلاتي مهمة جدا بالنسبة لي ومتوقف مشروعي على ردودك أخي Yaser

#189

ألسلام عليكم

ليه مايوجد رد على أسإلتي .......

#190

السلام عليكم

الأخ الكريم المبدع ما شاء الله تبارك الرحمن عليك يااستاذ ياسر ال الشيخ

تعرف من قال هالبيت / احمده ربي واشكره ومن مساوي عملي استفغره [ جاوب ]

أما عن طلبي فهو كالتالي

لدي جدولين الاول به id المفتاح الرئيسي

والجدول الثاني مرتبط بالمفتاح الرئيسي للجدول الاول

الذي اريده هو مثال ولو بسيط بحيث يكون الجدول الثاني الفرعي مربتط بالرئيسي

وموضوعك الذي اكتب فيه هو شرحا لذلك

لكن الاشكاليه التي عندي

انني اريد ان ادخل سجلات عن طريق الداتا قريد للجدول الثاني كلها مرتبطه برقم Id في الجدول الرئيسي

كمثال

الجدول الاول يحتوي على الاتي

اسم الجدول الرئيسي : Table1 وبه الحقول التاليه [ Id كفتاح رئيسي : نوعه ترقيم تلقائي , االاسم : نوعه نص ]

الجدول الثاني الفرعي اسمه :Table 2 وبه الحقول [ Id2 للربط ونوعه : رقم , الاجراءات : نوعه نص ]

ماااريده :

ان يكون الادخال سجلات الحدول الثاني في حقل الاجراءات عن طريق الدات قريد ويتم حفظه تلقائيا

للتوضيح

Id = 1 تابع له من الجدول الثاني : اجراء 1 اجراء 2 اجراء 3

كذلك طباعة الاجراءات التابعه لرقم الايدي رقم 1

اتمنى اني وضحت مااريده

#191

هل هنااااااااااااااااااااااااااااااك جديد في طريقة الاضافة والحذف وغيرها في داتا ريليشن

#192

فين error

Imports System.Data

Imports System.Data.SqlClient

Public Class Form1

Inherits System.Windows.Forms.Form

Dim myPosition As Byte

Dim objConnection As New SqlConnection("server=;database=;user id=;password=;")

Dim strConn

Friend strSQL As String = "SELECT Bank.id, Bank.Number, data.ask, data.answer FROM Bank INNER JOIN data ON Bank.ID = data.ID ORDER BY Bank.Number;"

Friend cn As New SqlConnection(strConn)

Friend daBankAndData As New SqlDataAdapter(strSQL, cn)

Friend MyDS As DataSet

Friend MyDataView As DataView

Friend MyCurrencyManager As CurrencyManager

Friend intOption As Byte = 0

Dim strSearch As String

#Region " Windows Form Designer generated code "

Public Sub New()

MyBase.New()

'This call is required by the Windows Form Designer.

InitializeComponent()

'Add any initialization after the InitializeComponent() call

End Sub

'Form overrides dispose to clean up the component list.

Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)

If disposing Then

If Not (components Is Nothing) Then

components.Dispose()

End If

End If

MyBase.Dispose(disposing)

End Sub

'Required by the Windows Form Designer

Private components As System.ComponentModel.IContainer

'NOTE: The following procedure is required by the Windows Form Designer

'It can be modified using the Windows Form Designer.

'Do not modify it using the code editor.

Friend WithEvents TextBox1 As System.Windows.Forms.TextBox

Friend WithEvents Label1 As System.Windows.Forms.Label

Friend WithEvents Label2 As System.Windows.Forms.Label

Friend WithEvents TextBox2 As System.Windows.Forms.TextBox

Friend WithEvents TextBox3 As System.Windows.Forms.TextBox

Friend WithEvents Label3 As System.Windows.Forms.Label

Friend WithEvents Label4 As System.Windows.Forms.Label

Friend WithEvents TextBox4 As System.Windows.Forms.TextBox

Friend WithEvents Button1 As System.Windows.Forms.Button

Friend WithEvents Button2 As System.Windows.Forms.Button

Friend WithEvents Button3 As System.Windows.Forms.Button

Friend WithEvents Button4 As System.Windows.Forms.Button

Friend WithEvents Button5 As System.Windows.Forms.Button

Friend WithEvents Button6 As System.Windows.Forms.Button

Friend WithEvents Button7 As System.Windows.Forms.Button

Friend WithEvents Button8 As System.Windows.Forms.Button

Friend WithEvents Button9 As System.Windows.Forms.Button

Friend WithEvents Button10 As System.Windows.Forms.Button

Friend WithEvents TextBox5 As System.Windows.Forms.TextBox

Friend WithEvents ComboBox1 As System.Windows.Forms.ComboBox

Friend WithEvents DataGrid1 As System.Windows.Forms.DataGrid

Friend WithEvents lblPosition As System.Windows.Forms.Label

Friend WithEvents textBox6 As System.Windows.Forms.TextBox

Friend WithEvents TextBox7 As System.Windows.Forms.TextBox

<System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()

Me.TextBox1 = New System.Windows.Forms.TextBox

Me.Label1 = New System.Windows.Forms.Label

Me.Label2 = New System.Windows.Forms.Label

Me.TextBox2 = New System.Windows.Forms.TextBox

Me.TextBox3 = New System.Windows.Forms.TextBox

Me.Label3 = New System.Windows.Forms.Label

Me.Label4 = New System.Windows.Forms.Label

Me.TextBox4 = New System.Windows.Forms.TextBox

Me.Button1 = New System.Windows.Forms.Button

Me.Button2 = New System.Windows.Forms.Button

Me.Button3 = New System.Windows.Forms.Button

Me.Button4 = New System.Windows.Forms.Button

Me.Button5 = New System.Windows.Forms.Button

Me.Button6 = New System.Windows.Forms.Button

Me.Button7 = New System.Windows.Forms.Button

Me.Button8 = New System.Windows.Forms.Button

Me.Button9 = New System.Windows.Forms.Button

Me.Button10 = New System.Windows.Forms.Button

Me.TextBox5 = New System.Windows.Forms.TextBox

Me.ComboBox1 = New System.Windows.Forms.ComboBox

Me.DataGrid1 = New System.Windows.Forms.DataGrid

Me.lblPosition = New System.Windows.Forms.Label

Me.textBox6 = New System.Windows.Forms.TextBox

Me.TextBox7 = New System.Windows.Forms.TextBox

CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).BeginInit()

Me.SuspendLayout()

'

'TextBox1

'

Me.TextBox1.Location = New System.Drawing.Point(40, 24)

Me.TextBox1.Name = "TextBox1"

Me.TextBox1.Size = New System.Drawing.Size(112, 20)

Me.TextBox1.TabIndex = 0

Me.TextBox1.Text = ""

'

'Label1

'

Me.Label1.Location = New System.Drawing.Point(176, 24)

Me.Label1.Name = "Label1"

Me.Label1.Size = New System.Drawing.Size(64, 23)

Me.Label1.TabIndex = 1

Me.Label1.Text = "ID"

'

'Label2

'

Me.Label2.Location = New System.Drawing.Point(168, 56)

Me.Label2.Name = "Label2"

Me.Label2.Size = New System.Drawing.Size(72, 23)

Me.Label2.TabIndex = 2

Me.Label2.Text = "number"

'

'TextBox2

'

Me.TextBox2.Location = New System.Drawing.Point(40, 56)

Me.TextBox2.Name = "TextBox2"

Me.TextBox2.Size = New System.Drawing.Size(112, 20)

Me.TextBox2.TabIndex = 3

Me.TextBox2.Text = ""

'

'TextBox3

'

Me.TextBox3.Location = New System.Drawing.Point(40, 88)

Me.TextBox3.Name = "TextBox3"

Me.TextBox3.Size = New System.Drawing.Size(112, 20)

Me.TextBox3.TabIndex = 4

Me.TextBox3.Text = ""

'

'Label3

'

Me.Label3.Location = New System.Drawing.Point(168, 88)

Me.Label3.Name = "Label3"

Me.Label3.Size = New System.Drawing.Size(64, 23)

Me.Label3.TabIndex = 5

Me.Label3.Text = "ask"

'

'Label4

'

Me.Label4.Location = New System.Drawing.Point(168, 120)

Me.Label4.Name = "Label4"

Me.Label4.Size = New System.Drawing.Size(56, 24)

Me.Label4.TabIndex = 6

Me.Label4.Text = "answer"

'

'TextBox4

'

Me.TextBox4.Location = New System.Drawing.Point(40, 128)

Me.TextBox4.Name = "TextBox4"

Me.TextBox4.Size = New System.Drawing.Size(112, 20)

Me.TextBox4.TabIndex = 7

Me.TextBox4.Text = ""

'

'Button1

'

Me.Button1.Location = New System.Drawing.Point(16, 176)

Me.Button1.Name = "Button1"

Me.Button1.Size = New System.Drawing.Size(40, 23)

Me.Button1.TabIndex = 8

Me.Button1.Text = "<<"

'

'Button2

'

Me.Button2.Location = New System.Drawing.Point(56, 176)

Me.Button2.Name = "Button2"

Me.Button2.Size = New System.Drawing.Size(32, 23)

Me.Button2.TabIndex = 9

Me.Button2.Text = "<"

'

'Button3

'

Me.Button3.Location = New System.Drawing.Point(88, 176)

Me.Button3.Name = "Button3"

Me.Button3.Size = New System.Drawing.Size(48, 23)

Me.Button3.TabIndex = 10

Me.Button3.Text = ">>"

'

'Button4

'

Me.Button4.Location = New System.Drawing.Point(136, 176)

Me.Button4.Name = "Button4"

Me.Button4.Size = New System.Drawing.Size(48, 23)

Me.Button4.TabIndex = 11

Me.Button4.Text = ">"

'

'Button5

'

Me.Button5.Location = New System.Drawing.Point(32, 216)

Me.Button5.Name = "Button5"

Me.Button5.Size = New System.Drawing.Size(40, 24)

Me.Button5.TabIndex = 12

Me.Button5.Text = "Exit"

'

'Button6

'

Me.Button6.Location = New System.Drawing.Point(88, 216)

Me.Button6.Name = "Button6"

Me.Button6.Size = New System.Drawing.Size(48, 23)

Me.Button6.TabIndex = 13

Me.Button6.Text = "Save"

'

'Button7

'

Me.Button7.Location = New System.Drawing.Point(152, 216)

Me.Button7.Name = "Button7"

Me.Button7.Size = New System.Drawing.Size(48, 24)

Me.Button7.TabIndex = 14

Me.Button7.Text = "Cancel"

'

'Button8

'

Me.Button8.Location = New System.Drawing.Point(208, 216)

Me.Button8.Name = "Button8"

Me.Button8.Size = New System.Drawing.Size(48, 23)

Me.Button8.TabIndex = 15

Me.Button8.Text = "Delete"

'

'Button9

'

Me.Button9.Location = New System.Drawing.Point(264, 216)

Me.Button9.Name = "Button9"

Me.Button9.TabIndex = 16

Me.Button9.Text = "aDD"

'

'Button10

'

Me.Button10.Location = New System.Drawing.Point(56, 256)

Me.Button10.Name = "Button10"

Me.Button10.Size = New System.Drawing.Size(64, 24)

Me.Button10.TabIndex = 17

Me.Button10.Text = "Find"

'

'TextBox5

'

Me.TextBox5.Location = New System.Drawing.Point(136, 256)

Me.TextBox5.Name = "TextBox5"

Me.TextBox5.TabIndex = 18

Me.TextBox5.Text = ""

'

'ComboBox1

'

Me.ComboBox1.Location = New System.Drawing.Point(256, 256)

Me.ComboBox1.Name = "ComboBox1"

Me.ComboBox1.Size = New System.Drawing.Size(121, 21)

Me.ComboBox1.TabIndex = 19

'

'DataGrid1

'

Me.DataGrid1.DataMember = ""

Me.DataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText

Me.DataGrid1.Location = New System.Drawing.Point(0, 288)

Me.DataGrid1.Name = "DataGrid1"

Me.DataGrid1.Size = New System.Drawing.Size(392, 120)

Me.DataGrid1.TabIndex = 20

'

'lblPosition

'

Me.lblPosition.Location = New System.Drawing.Point(272, 80)

Me.lblPosition.Name = "lblPosition"

Me.lblPosition.TabIndex = 21

Me.lblPosition.Text = "Label5"

'

'textBox6

'

Me.textBox6.Location = New System.Drawing.Point(208, 176)

Me.textBox6.Name = "textBox6"

Me.textBox6.TabIndex = 22

Me.textBox6.Text = "TextBox6"

'

'TextBox7

'

Me.TextBox7.Location = New System.Drawing.Point(48, 152)

Me.TextBox7.Name = "TextBox7"

Me.TextBox7.TabIndex = 23

Me.TextBox7.Text = "TextBox7"

'

'Form1

'

Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)

Me.ClientSize = New System.Drawing.Size(392, 404)

Me.Controls.Add(Me.TextBox7)

Me.Controls.Add(Me.textBox6)

Me.Controls.Add(Me.lblPosition)

Me.Controls.Add(Me.DataGrid1)

Me.Controls.Add(Me.ComboBox1)

Me.Controls.Add(Me.TextBox5)

Me.Controls.Add(Me.Button10)

Me.Controls.Add(Me.Button9)

Me.Controls.Add(Me.Button8)

Me.Controls.Add(Me.Button7)

Me.Controls.Add(Me.Button6)

Me.Controls.Add(Me.Button5)

Me.Controls.Add(Me.Button4)

Me.Controls.Add(Me.Button3)

Me.Controls.Add(Me.Button2)

Me.Controls.Add(Me.Button1)

Me.Controls.Add(Me.TextBox4)

Me.Controls.Add(Me.Label4)

Me.Controls.Add(Me.Label3)

Me.Controls.Add(Me.TextBox3)

Me.Controls.Add(Me.TextBox2)

Me.Controls.Add(Me.Label2)

Me.Controls.Add(Me.Label1)

Me.Controls.Add(Me.TextBox1)

Me.Name = "Form1"

Me.Text = "Form1"

CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).EndInit()

Me.ResumeLayout(False)

End Sub

#End Region

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Me.Text = Application.ProductName & "/" & Application.ProductVersion

cn.Open()

' Fill the DataSet and bind the fields...

Call FillDataSetAndView()

Call BindFields()

' Show the current record position...

Call ShowPosition()

' Add items to the combo box...

ComboBox1.Items.Add("Number")

ComboBox1.Items.Add("Ask")

ComboBox1.Items.Add("Answer")

' Make the first item selected...

ComboBox1.SelectedIndex = 0

End Sub

Private Sub FillDataSetAndView()

Try

' Initialize a new instance of the DataSet object...

MyDS = New DataSet

MyDS.Clear()

' Fill the DataSet object with TheBankAndData...

daBankAndData.Fill(MyDS, "TheBankAndData")

' Set the DataView object to the DataSet object...

MyDataView = New DataView(MyDS.Tables("TheBankAndData"))

' Set our CurrencyManager object to the DataView object...

MyCurrencyManager = CType(Me.BindingContext(MyDataView), CurrencyManager)

cn.Close()

Catch ex As Exception

MessageBox.Show(ex.Message, " Fill the DataSet and bind the fields... ", MessageBoxButtons.OK, _

MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, _

MessageBoxOptions.RtlReading)

End Try

End Sub

Sub BindFields()

' Clear any previous bindings...

TextBox1.DataBindings.Clear()

TextBox2.DataBindings.Clear()

TextBox3.DataBindings.Clear()

TextBox4.DataBindings.Clear()

' Add new bindings to the DataView object...

TextBox1.DataBindings.Add(New Binding("Text", MyDataView, "id"))

TextBox2.DataBindings.Add(New Binding("Text", MyDataView, "number"))

TextBox3.DataBindings.Add(New Binding("Text", MyDataView, "ask"))

TextBox4.DataBindings.Add(New Binding("Text", MyDataView, "answer"))

' Add new bindings to the DataGridView object...

DataGrid1.AccessibleDescription = True

DataGrid1.DataSource = MyDS

DataGrid1.DataMember = "BankAndData"

' Display a ready status...

TextBox6.Text = "Ready"

End Sub

Private Sub ShowPosition()

' Display the current position and the number of records

lblPosition.Text = MyCurrencyManager.Position + 1 & _

" of " & MyCurrencyManager.Count()

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

' Set the record position to the first record...

MyCurrencyManager.Position = 0

' Show the current record position...

ShowPosition()

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

' Move to the next record...

MyCurrencyManager.Position += 1

' Show the current record position...

ShowPosition()

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

' Move to the previous record...

MyCurrencyManager.Position -= 1

' Show the current record position...

ShowPosition()

End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

' Set the record position to the last record...

MyCurrencyManager.Position = MyCurrencyManager.Count - 1

' Show the current record position...

ShowPosition()

End Sub

Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

' Determine the appropriate item selected and set the

' Sort property of the DataView object...

Select Case ComboBox1.SelectedIndex

Case 0 'Number Name

MyDataView.Sort = "number"

TextBox6.Text = "Records Sorted By Number"

Case 1 'ask

MyDataView.Sort = "ask"

TextBox6.Text = "Records Sorted By Ask"

Case 2 'answer

MyDataView.Sort = "Answer"

TextBox6.Text = "Records Sorted By Answer"

End Select

' Call the click event for the MoveFirst button...

Button1_Click(Nothing, Nothing)

' Display a message that the records have been sorted...

End Sub

Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click

If TextBox7.Text = "" Then

textBox6.Text = "Write Any Text For Search"

ComboBox1_SelectedIndexChanged(Nothing, Nothing)

Exit Sub

End If

' Declare local variables...

Dim intPosition As Integer

Call Search()

'MyDataView.RowFilter = "ask like('" + Trim(txtFind.Text) + "%')"

intPosition = MyDataView.Find(strSearch)

strSearch = Nothing

If intPosition = -1 Then

' Display a message that the record was not found...

textBox6.Text = "Record Not Found"

Else

' Otherwise display a message that the record was

' found and reposition the CurrencyManager to that

' record...

textBox6.Text = "Record Found"

'MyCurrencyManager.Position = intPosition

End If

' Show the current record position...

ShowPosition()

End Sub

Private Sub Search()

Dim sql2 As String

Dim da2 As New SqlDataAdapter

Dim ds2 As New DataSet

MyDataView.Sort = "ask"

sql2 = "SELECT ask FROM Data where ask like ('%" + Trim(TextBox7.Text) + "%');"

cn.Open()

da2.SelectCommand = New SqlCommand(sql2, cn)

ds2 = New DataSet("BankAndData")

If cn.State = ConnectionState.Open Then

da2.MissingSchemaAction = MissingSchemaAction.AddWithKey

da2.Fill(ds2, "BankAndData")

End If

If ds2.Tables("BankAndData").Rows.Count <> 0 Then strSearch = ds2.Tables("BankAndData").Rows(0)("ask")

End Sub

Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click

Dim response As MsgBoxResult

textBox6.Text = "Exit program?"

response = MsgBox("Exit program?", vbYesNo)

If response = vbYes Then

End

Else

textBox6.Text = "Ready"

End If

End Sub

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click

' Save AddNew

Try

Dim InsertCommand As SqlCommand = New SqlCommand

' Open the connection, execute the command

If cn.State = ConnectionState.Closed Then cn.Open()

' Set the SqlCommand object properties...

InsertCommand.Connection = cn

' AddNew Record From Thebank Table

InsertCommand.CommandText = "INSERT INTO bank(Asknumber) VALUES(?);"

'Add parameters for the placeholders in the SQL in the CommandText property...

'Parameter for the Asknumber column...

InsertCommand.Parameters.Add("?", TextBox2.Text)

' Execute the OleDbCommand object to insert the new data...

InsertCommand.ExecuteNonQuery()

' Get The ID Value from TheBank Table..

Dim IdValue As String = CInt(ValueOfFields("bank", "ID"))

' AddNew Record From Thebank Table

InsertCommand.CommandText = "INSERT INTO Data(id,Ask,Answer) VALUES(?,?,?);"

'Add parameters for the placeholders in the SQL in the CommandText property...

'Parameter for the id column...

InsertCommand.Parameters.Clear()

InsertCommand.Parameters.Add("?", IdValue)

'Parameter for the ask column...

InsertCommand.Parameters.Add("?", TextBox3.Text)

'Parameter for the answer column

InsertCommand.Parameters.Add("?", TextBox4.Text)

' Execute the SqlCommand object to insert the new data...

InsertCommand.ExecuteNonQuery()

' Close the connection...

cn.Close()

' Fill the dataset and bind the fields...

Call FillDataSetAndView()

BindFields()

' Set the record position to the one that you saved...

MyCurrencyManager.Position = MyCurrencyManager.Count - 1

' Show the current record position...

ShowPosition()

' Display a message that the record was added...

textBox6.Text = "Record Added"

'Dispose Declare local variables and objects

InsertCommand.Dispose()

InsertCommand = Nothing

Catch ex As SqlException

MessageBox.Show(ex.Message, " Save AddNew ", MessageBoxButtons.OK, _

MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, _

MessageBoxOptions.RtlReading)

End Try

intOption = False

End Sub

Private Function ValueOfFields(ByVal MyTable As String, ByVal Field As String) As String

Try

'=================================================================

' يقوم هذا الإجراء بإرجاع قيمة "الأيدي" لاخر سجل في جدول

' من ملف قاعدة البانات "Data"

'=================================================================

Dim daTheBank As SqlClient.SqlDataAdapter

Dim TheBankTable As DataTable = New DataTable

Dim strValue As String

Dim CountMyTable As Integer

If cn.State = ConnectionState.Closed Then cn.Open()

daTheBank = New SqlClient.SqlDataAdapter("SELECT " & Field & " from " & MyTable & "", cn)

daTheBank.Fill(TheBankTable)

CountMyTable = TheBankTable.Rows.Count

strValue = TheBankTable.Rows(CountMyTable - 1).Item("id")

Return strValue

daTheBank.Dispose()

TheBankTable.Dispose()

Catch oExcept As SqlException

MessageBox.Show(oExcept.Message)

End Try

End Function

Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click

Dim response As MsgBoxResult

textBox6.Text = "Ready To Delete This Record"

response = MsgBox("Are You Sure ! You Want Delete This Record ?", vbYesNo)

If response = vbYes Then

Try

' Declare local variables and objects...

Dim intPosition As Integer

Dim DeleteCommand As SqlCommand = New SqlCommand

' Save the current record position - 1 for the one to be

' deleted...

intPosition = Me.BindingContext(MyDataView).Position - 1

' If the position is less than 0 set it to 0...

If intPosition < 0 Then

intPosition = 0

End If

' Set the Command object properties...

DeleteCommand.Connection = cn

' Delete Record From Data Table

DeleteCommand.CommandText = "DELETE FROM thebank WHERE id = ?;"

'"DELETE FROM Data WHERE id = ?;"

' Parameter for the title_id field...

DeleteCommand.Parameters.Add _

("?", BindingContext(MyDataView).Current("id"))

' Open the database connection...

cn.Open()

' Execute the SqlCommand object to update the data...

DeleteCommand.ExecuteNonQuery()

' Delete Record From Data Table

DeleteCommand.CommandText = "DELETE FROM Data WHERE id = ?;"

' Parameter for the title_id field...

DeleteCommand.Parameters.Add _

("?", BindingContext(MyDataView).Current("id"))

' Execute the SqlCommand object to update the data...

DeleteCommand.ExecuteNonQuery()

' Close the connection...

cn.Close()

' Fill the DataSet and bind the fields...

FillDataSetAndView()

BindFields()

' Set the record position to the one that you saved...

Me.BindingContext(MyDataView).Position = intPosition

' Show the current record position...

ShowPosition()

' Display a message that the record was deleted...

textBox6.Text = "Record Deleted"

'Dispose Declare local variables and objects

DeleteCommand.Dispose()

DeleteCommand = Nothing

intPosition = Nothing

Catch ex As SqlException

MessageBox.Show(ex.Message, " Delete Record ", MessageBoxButtons.OK, _

MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, _

MessageBoxOptions.RtlReading)

End Try

Else

textBox6.Text = "Delete This Record Is Canceled"

End If

End Sub

Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click

' Fill the DataSet and bind the fields...

FillDataSetAndView()

BindFields()

' Set the record position to the one that you saved...

Me.BindingContext(MyDataView).Position = myPosition

' Show the current record position...

ShowPosition()

' Display a message that the record was Command Cancel...

textBox6.Text = "Command AddNew Cancel"

End Sub

Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click

Dim BackPosition

' Clear the teh Text Box fields...

Call CLEARDATA()

TextBox2.Focus()

intOption = True

If MyCurrencyManager.Count = 0 Then

BackPosition = 0

Else

BackPosition = MyCurrencyManager.Position

End If

textBox6.Text = "Ready To Add New Record"

End Sub

Private Sub CLEARDATA()

End Sub

End Class

#193

السلام عليكم ورحمة الله

انا قرات مشروعك اخى ياسر وهو منمق وجميل ولكن اعذرنى فى شىء

انت تكثر من كتابة الكود فيما لايستدعى ذلك كما انك تصل الى ماتريد باصعب الطرق

عند استخدام مكتبة الادو دوت نت مع الفيجوال 2005 توجد طريقتين لربط قاعدة البيانات والتعامل معها مهما كان نوعها

الطريقة الاولى ado.ne offline mode

الطريقة الثانية ado.net online mode

وساتحدث معك بختصار مبدئيا عن الطريقة الاولى :

تعتمد هذه الطريقة فى مجملها على انشاء كائن data adapter لانشاء الوصلة بين قاعدة البيانات والداتا سيت

وايضا تقوم بعمل تحديث لقاعدة البيانات وخطوات الطريقة بالتفصيل كالاتى :

1-الاتصال بقاعدة البيانات connection

2- انشاء command حتى تستطيع ارسال جمل الاستعلام

3-انشاء command builder حتى تستطيع معالجة جمل الاستعلام

4-انشاء data adapter وهى الوصلة بين قاعدة البيانات والداتا سيت وتقوم ايضا بعمل تحديث لقاعدة البيانات

5-انشاء dataset وهى نسخة من قاعدة البيانات فى الذاكرة وجميع العمليات التى تقوم فيها الى ان تقوم باصدار الامر للداتا ادبتور لتحديث قاعدةالبيانات

6-datatable ويوجد بداخله الكائن rows

ولان كيفية البدء فى العمل : لنفترض ان عندى جدول داخل قاعدة البيانات يسمى cust وقاعدة البيانات تسمى bank

اولا : منطقة التصريحات العامة module

نقوم باستيراد مكتبة الادو بالامر imports system.data.oledb

ثانيا : فى داخل الموديول نقوم بالاعلان عن الكائنات التى سيتم استخدامها من المكتبة

وهذا يعنى انشاء مصفوفة بعدد الجداول الموجودة داخل قاعدة البيانات()public abdate as integer

ويتم كتابة عدد عناصر المصفوفة بين القوسين مثلا لو انا عندى 5 جداول اكتب رقم 4 لو انا عندى 7 جداول اكتب رقم 6 وهكذا.....

ثم نقوم بالاعن عن باقى المتغير كالاتى :

1- public cn as new oledbconnection

2- public cmdcust as new oledbcommand

3- public adcust as new oledbdataAdpter

4- public cust as new datatable

5- public cmdb as new oledbcommandbuilder

6- public dbs as new dataset

7- public rec as datarow

public frec() as datarow

8- public r as integerوساقوم الان بشرح الكود المكتوب :

1- الاعلان عن الاتصال الذى سنقوم من خلاله بالاتصال بقاعدة البيانات لاخذ نسخة منها بالذاكرة

2-الاعلان عن الكائن (command) وتم الاعلان عن كائن لجدول واحد هو cust ويمكن اضافة اكثر من جدول بنفس الطريقة

3-الاعلان عن الكائن (adapter) لجدول واحد ويمكن اضافة اكثر من جدول

4- الاعلان عن الكائن datatable لكل جدول من الجداول اذا وجد اكثر من جدول وفى مثالنا جدول واحد فقط هو cust

5-الاعلان عن الكائن commandbuilder والذى سيتم استخدامه فى جمل الاستعلام

6-الاعلان عن الكائن data set الذى سيتم من خلاله حفظ قاعدة البيانات فى الذاكرة

7-الاعلان عن الكائن data row للتعامل مع السجلات داخل الجداول وتم الاعلان عن كائنين احدهما يستخدم للتعديل والتنقل بين السجلات والاخر يستخدم فى عملية البحث

8- الاعلان عن متغير من نوع رقمى صحيح لمعرفة ارقام السجلات التى يتم التنقل بينها

ثانيا:الكود الخاص فى الشاشة الرئيسية وفى الحدث form load

"cn.connectionstring ="provider = microsoft.jet.oledb.4.0;dat source =bank.mdb

()cn.open

cmdcust.connection = cn

cmdcust.commandtype = commandtype.text

"cmdcust.commandtext = "select * from cust

adcust.selectcommand =cmdcust

("adcust.fill(dbs, "cust

("cust = dbs , tables ("cust

()cmdcust.connection.close

()cn.close

هذه اساسيات التعامل مع الادو دوت نت بطريقة الاوف لاين مود وان اعجبتك هذه الطريقة ساقوم ان شاء الله بارفاق ملف صغير به مثال مكتوب بالكود كاملا بجميع المفاتيح التى تريدها من جديد وحفظ وبحث وتعديل وحذف والجلات الول والتالى والسابق والاخير

والله الموفق

اخوك

#194

سلام عليكم اخي HellStorm.

ياليت تعمل لنا المثال بكل العمليات بطريقة المنفصله ويكون جدولين وبينهم رابط الجدول الاول يعرض في تكست بوكس والثاني في قريد وتتم عليها جميع العمليات وخاصه عملية البحث والعرض في لست وعند النقر عليها مرتين تعرض البيانات التفصيلية في فورم اخر

ويكون بااقرب وقت

#195

جاري تطبيق المثال - لكن هناك سؤال لو وضعنا كلمة مرور على قاعدة البيانات

هل التقارير تطبع الكريستال ريبورت - كانت هذه مشكلتي في 2003

الف شكر لكل المشاركين

#196

السلام عليكم

اشكرك استاذ ياسر الشيخ

واشكر جميع الاعضاء الذين شاركوك في ‘يضاح هذه المعلومات المهمه

واسل الله العلي العظيم ان يجعله في ميزان حسناتكم

ولكن عن إطلاعي على الدروس وإطلاعي قواعد البيانات التي ارفقها استاذ ياسر في برنامجه وجدت أن الربط بين الجداول بطريقة queries

وانا ربطت قواعد بياناتي باستخدام relationships

فما الفرق بين الطريقتين وكيف الربط قواعد البيانات

وشكراً

#197

شكراً جزيلاً على الدرس

#198

اخي احييك على هذا الجهد الكبير ....... والله استفد منه كثيرا :D لكن عندي بعض الطلبات اتمنى الا تردني خائبا :wink:

انا كنت من عشاق الفجوال القديم وحولت الي الدوت نت وقرأت عنها كثيرا وتعلمت الكثير ولكن كلما اتعلم شي ارى اني لم ازل في بداية الطريق نسبة لان الاكواد تختلف من شخص الى آخر ذلك طلباتي هي :-

  • ان يكون التواصل بيننا دوما connected
  • لو كان بالامكان ان ترسل لي المشروع على بريدي الالكتروني huss22379181@gmail.com
  • أريد انشاء مستخدمون وكلمات مرور بحسب الصلاحيات وامكانية التعديل فيها
  • كيف تكون سلسلة الاتصال في حالة تعيين كلمة مرور لقاعدة البيانات

ولك مني وافر الشكر -وجعل الله ذلك في ميزان حسناتك

#199

شكرا لك اخي عل هذا الدرس الرائع وبارك الله فيك

#200

جزاك الله كل خير يا اخى و كلنا معاك و ربنا يجعله فى ميزان حسناتك

مواضيع مشابهة