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

تحديث البيانات listbox

بدأه كارم سامي في 22 فبراير 2014 · 20 رد · 746 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

 

 

كيفية تحديث البيانات listbox بمجرد حفظ بيانات جديدة بقاعدة البيانات

#2

وعليكم السلام

جرب هذا

listBox1.Update();
#3
alroaini100 كتب:

 

وعليكم السلام

جرب هذا

listBox1.Update();

 

للأسف لا يعمل

#4

السلام عليكم

 

هل التطبيق على نفس الجهاز ولمستخدم واحد....اذا كان كذلك فما عليك الا اعادة تعبئة  listbox

 

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

واضافة الكود التالى بعد كل عمليه فى الاجراء المخزن..... بحيث ننشئ ملف نصى وفى كل مرة نضيف او نعدل فى الجدول يقوم باضافة نص للملف ومن ثم يتم مراقبته من خلال التطبيق ومعرفة ان بيانات الجدول تعدلت

 

لنفرض ان لدينا قاعدة بيانات Test  وتحوى الجدول T1 

USE [Test]
GO

/****** Object:  Table [dbo].[T1]    Script Date: 2/23/2014 2:03:34 AM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[T1](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[Name] [nvarchar](50) NOT NULL,
 CONSTRAINT [PK_T1] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

الاجراء المخزن التالى للاضافة

USE [Test]
GO
/****** Object:  StoredProcedure [dbo].[usp_Add]    Script Date: 2/23/2014 2:04:47 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[usp_Add]
	-- Add the parameters for the stored procedure here
	@name nvarchar(50)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	INSERT INTO [dbo].[T1]
           ([Name])
     VALUES
           (@name)

 execute xp_cmdshell 'echo DataChanged >>c:\test.txt'
END

لاحظ هذا السطر execute xp_cmdshell 'echo DataChanged >>c:\test.txt'

حيث يقوم باضافة عبارة datachanged  الى ملف نصى text.txt  فى المسار c:

ربما تحتاج لتفعيل xp_cmdshell   فى sql server استخدم الكود التالى

-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO

نفس السطر يمكنك اضافته للحذف والتعديل

 

فى التطبيق نضيف fileSystemWatcher

والذى يقوم بمراقبة الملف النصى ونقوم باقتناص الحدث Changed  للملف والذى يعنى ان الجدول حصل به تغيير وعليه نقوم بجلب البيانات من الجدول واسنادها لللاداه listbox

خصائص   fileSystemWatcher

  // fileSystemWatcher1
            // 
 this.fileSystemWatcher1 = new System.IO.FileSystemWatcher();
            this.fileSystemWatcher1.EnableRaisingEvents = true;
            this.fileSystemWatcher1.Filter = "test.txt";
            this.fileSystemWatcher1.Path = "C:\\";
            this.fileSystemWatcher1.SynchronizingObject = this;
            this.fileSystemWatcher1.Changed += new System.IO.FileSystemEventHandler(this.fileSystemWatcher1_Changed);

انشى تطبيق وعليه listbox و button  و fileSystemWatcher

الكود كالتالى: لاحظ عند النقر والاضافه يتم تحديث listbox  بناء على الحدث fileSystemWatcher1_Changed

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Configuration;
using System.Security.Permissions;
namespace Notification
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
       
        private SqlConnection cnn = new SqlConnection("Data Source=...\\SQL2012;Initial Catalog=Test;Integrated Security=True");
        private DataSet ds = new DataSet();
        private void Form1_Load(object sender, EventArgs e)
        {
            GetData();
           
        }
        private void GetData()
        {
            using (SqlCommand cmd = new SqlCommand("SELECT * FROM T1", cnn))
            {
                using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                {

                    ds.Clear();

                    da.Fill(ds);
                    listBox1.DataSource = ds.Tables[0];
                    listBox1.DisplayMember = "Name";

                }
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {

            SqlCommand cmd = new SqlCommand();
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "usp_Add";
            cmd.Connection = cnn;
            cmd.Parameters.AddWithValue("@name", "new nam");
            cnn.Open();
            cmd.ExecuteNonQuery();
            cnn.Close();
        }
        private void fileSystemWatcher1_Changed(object sender, System.IO.FileSystemEventArgs e)
        {
            GetData();
        }
        }
    }

اخيرا fileSystemWatcher   يمكنه مراقبة ملفات على الشبكة

تم تعديل هذه المشاركة بواسطة SOLO.NET في 23 فبراير 2014 في 03:22

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#5
SOLO.NET كتب:

 

السلام عليكم

 

هل التطبيق على نفس الجهاز ولمستخدم واحد....اذا كان كذلك فما عليك الا اعادة تعبئة  listbox

 

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

واضافة الكود التالى بعد كل عمليه فى الاجراء المخزن..... بحيث ننشئ ملف نصى وفى كل مرة نضيف او نعدل فى الجدول يقوم باضافة نص للملف ومن ثم يتم مراقبته من خلال التطبيق ومعرفة ان بيانات الجدول تعدلت

 

لنفرض ان لدينا قاعدة بيانات Test  وتحوى الجدول T1 

USE [Test]
GO

/****** Object:  Table [dbo].[T1]    Script Date: 2/23/2014 2:03:34 AM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[T1](
	[id] [int] IDENTITY(1,1) NOT NULL,
	[Name] [nvarchar](50) NOT NULL,
 CONSTRAINT [PK_T1] PRIMARY KEY CLUSTERED 
(
	[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

الاجراء المخزن التالى للاضافة

USE [Test]
GO
/****** Object:  StoredProcedure [dbo].[usp_Add]    Script Date: 2/23/2014 2:04:47 AM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[usp_Add]
	-- Add the parameters for the stored procedure here
	@name nvarchar(50)
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	INSERT INTO [dbo].[T1]
           ([Name])
     VALUES
           (@name)

 execute xp_cmdshell 'echo DataChanged >>c:\test.txt'
END

لاحظ هذا السطر execute xp_cmdshell 'echo DataChanged >>c:\test.txt'

حيث يقوم باضافة عبارة datachanged  الى ملف نصى text.txt  فى المسار c:

ربما تحتاج لتفعيل xp_cmdshell   فى sql server استخدم الكود التالى

-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO

نفس السطر يمكنك اضافته للحذف والتعديل

 

فى التطبيق نضيف fileSystemWatcher

والذى يقوم بمراقبة الملف النصى ونقوم باقتناص الحدث Changed  للملف والذى يعنى ان الجدول حصل به تغيير وعليه نقوم بجلب البيانات من الجدول واسنادها لللاداه listbox

خصائص   fileSystemWatcher

  // fileSystemWatcher1
            // 
 this.fileSystemWatcher1 = new System.IO.FileSystemWatcher();
            this.fileSystemWatcher1.EnableRaisingEvents = true;
            this.fileSystemWatcher1.Filter = "test.txt";
            this.fileSystemWatcher1.Path = "C:\\";
            this.fileSystemWatcher1.SynchronizingObject = this;
            this.fileSystemWatcher1.Changed += new System.IO.FileSystemEventHandler(this.fileSystemWatcher1_Changed);

انشى تطبيق وعليه listbox و button  و fileSystemWatcher

الكود كالتالى: لاحظ عند النقر والاضافه يتم تحديث listbox  بناء على الحدث fileSystemWatcher1_Changed

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Configuration;
using System.Security.Permissions;
namespace Notification
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
       
        private SqlConnection cnn = new SqlConnection("Data Source=...\\SQL2012;Initial Catalog=Test;Integrated Security=True");
        private DataSet ds = new DataSet();
        private void Form1_Load(object sender, EventArgs e)
        {
            GetData();
           
        }
        private void GetData()
        {
            using (SqlCommand cmd = new SqlCommand("SELECT * FROM T1", cnn))
            {
                using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                {

                    ds.Clear();

                    da.Fill(ds);
                    listBox1.DataSource = ds.Tables[0];
                    listBox1.DisplayMember = "Name";

                }
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {

            SqlCommand cmd = new SqlCommand();
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "usp_Add";
            cmd.Connection = cnn;
            cmd.Parameters.AddWithValue("@name", "new nam");
            cnn.Open();
            cmd.ExecuteNonQuery();
            cnn.Close();
        }
        private void fileSystemWatcher1_Changed(object sender, System.IO.FileSystemEventArgs e)
        {
            GetData();
        }
        }
    }

اخيرا fileSystemWatcher   يمكنه مراقبة ملفات على الشبكة

 

 

 

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

 

ولكن اذا كان التطبيق علي نفس الجهاز كيف اعيد تعبئة listbox ؟

#6

بنفس الطريقه التى تم جلب البيانات  list box  اول مرة بعد كود الاضافه او انشاء اجراء مثل الكود السابق GetData()

namespace Notification
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
       
        private SqlConnection cnn = new SqlConnection("Data Source=...\\SQL2012;Initial Catalog=Test;Integrated Security=True");
        private DataSet ds = new DataSet();
        private void Form1_Load(object sender, EventArgs e)
        {
            GetData();
           
        }
        private void GetData()
        {
            using (SqlCommand cmd = new SqlCommand("SELECT * FROM T1", cnn))
            {
                using (SqlDataAdapter da = new SqlDataAdapter(cmd))
                {

                    ds.Clear();

                    da.Fill(ds);
                    listBox1.DataSource = ds.Tables[0];
                    listBox1.DisplayMember = "Name";

                }
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {

            SqlCommand cmd = new SqlCommand();
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "usp_Add";
            cmd.Connection = cnn;
            cmd.Parameters.AddWithValue("@name", "new nam");
            cnn.Open();
            cmd.ExecuteNonQuery();
            cnn.Close();
//Refill ListBox from DB
GetData();
        }
   
        }
    }

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#7

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

#8

استخدمت هذا الكود ولكن لم يصلح .. النتيجة ان القيمة الموجودة سابقاً ( الواقف عليها ) يستبدلها بالقيمة الجديدة فقط

 string JSS_connetionString006 = null;
            OleDbConnection JSS_cnn006;
            OleDbCommand JSS_cmd006;
            string JSS_sql006 = null;
            OleDbDataReader JSS_reader006;
            JSS_connetionString006 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|/je_salestoredb.mdb;Persist Security Info=True;Jet OLEDB:Database Password=JE2014";
            JSS_sql006 = "select * from product_groups";
            JSS_cnn006 = new OleDbConnection(JSS_connetionString006);
            try
            {
                JSS_cnn006.Open();
                JSS_cmd006 = new OleDbCommand(JSS_sql006, JSS_cnn006);
                JSS_reader006 = JSS_cmd006.ExecuteReader();
                while (JSS_reader006.Read())
                {

                   listBox1.Text = (JSS_reader006.GetValue(1) + "");
                  
                }
                JSS_reader006.Close();
                JSS_cmd006.Dispose();
                JSS_cnn006.Close();

            }
            catch (Exception ex)
            {

            }
#9

استبدل هذا السطر

listBox1.Text = (JSS_reader006.GetValue(1) + "");

بهذا

listBox1.Items.Clear();
 listBox1.BeginUpdate();
listBox1.Items.Add (JSS_reader006.GetValue(1) );
listBox1.EndUpdate();

تم تعديل هذه المشاركة بواسطة SOLO.NET في 23 فبراير 2014 في 18:43

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#10
SOLO.NET كتب:

 

استبدل هذا السطر

listBox1.Text = (JSS_reader006.GetValue(1) + "");

بهذا

listBox1.Items.Clear();
 listBox1.BeginUpdate();
listBox1.Items.Add (JSS_reader006.GetValue(1) );
listBox1.EndUpdate();

 

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

#11
string JSS_connetionString006 = null;
            OleDbConnection JSS_cnn006;
            OleDbCommand JSS_cmd006;
            string JSS_sql006 = null;
            OleDbDataReader JSS_reader006;
            JSS_connetionString006 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|/je_salestoredb.mdb;Persist Security Info=True;Jet OLEDB:Database Password=JE2014";
            JSS_sql006 = "select * from product_groups";
            JSS_cnn006 = new OleDbConnection(JSS_connetionString006);
            try
            {
                JSS_cnn006.Open();
                JSS_cmd006 = new OleDbCommand(JSS_sql006, JSS_cnn006);
                JSS_reader006 = JSS_cmd006.ExecuteReader();
listBox1.Items.Clear();
listBox1.BeginUpdate();


                while (JSS_reader006.Read())

                {

listBox1.Items.Add (JSS_reader006.GetValue(1) );
                  
             
   }
listBox1.EndUpdate();

                JSS_reader006.Close();
                JSS_cmd006.Dispose();
                JSS_cnn006.Close();

            }
            catch (Exception ex)
            {

            }

الكود كاملا.....

listBox1.Items.Clear();
listBox1.BeginUpdate();
قبل While
listBox1.EndUpdate();
بعد  حلقة ًwhile

تم تعديل هذه المشاركة بواسطة SOLO.NET في 23 فبراير 2014 في 19:52

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#12

لا جديد وتقريباً هناك خطأ ما حيث ان في  الـ debugger

 

يقفز من السطر listBox1.Items.Clear();

الي السطر catch (Exception ex)

 

ويتجاهل ما بينهم

#13

قم بعرض الخطأ عن طريق messagebox لتعرف ما هو

  catch (Exception ex)
            {
MessageBox.Show(ex.Message).
            }

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#14

items collection cannot be modified when the datasource property is set

#15

بما انك قمت باسناد مصدر بيانات لل listbox فعليك تعبئة البيانات من خلاله......

هناك جزء ناقص بالكود

هل قمت باسناد Dataset او DataTable  لل ListBox.DataSource

اذا كان كذلك فما الجدوى من الكود السابق...........................

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#16

على كل حال جرب اضافة خذا السطر قبل While

ListBox1.DataSource=null;
1

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#17
SOLO.NET كتب:

 

على كل حال جرب اضافة خذا السطر قبل While

ListBox1.DataSource=null;

 

 

نفس الخطأ

items collection cannot be modified when the datasource property is set

 

 

 

عموماً انا اعرف انني تعبت حضرتك معاي واضعت من وقتك الكثير .. شكراً لك

 

كيفية اعادة تعبئة البيانات من خلال مصدر البيانات ؟؟

#18

مرفق مثال بالطريقتين

كود المثال

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.OleDb;
namespace RefillListBox
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private string ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\\DB.accdb";
        private OleDbConnection cnn = null;
        private DataSet ds = new DataSet();
        private void GetData()
        {
            listBox1.BeginUpdate();
            if (radioButton1.Checked)
            {
                ds.Clear();
                cnn = new OleDbConnection(ConnectionString);

                using (OleDbDataAdapter da = new OleDbDataAdapter("SELECT * FROM T1", cnn))
                {
                    da.Fill(ds);

                    listBox1.DataSource = ds.Tables[0];
                    listBox1.DisplayMember = "Na";
                }
            }
            else
            {
             
                listBox1.DataSource = null;
                listBox1.Items.Clear();
                OleDbDataReader dr;
                using (OleDbCommand cmd = new OleDbCommand("SELECT * FROM T1", cnn))
                {
                    cnn.Open();
                    dr = cmd.ExecuteReader();
                    while (dr.Read())
                    {
                        listBox1.Items.Add(dr.GetString(1));
                    }

                    cnn.Close();
                   
                }
            }
            listBox1.EndUpdate();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            GetData();
        }

        private void button1_Click(object sender, EventArgs e)
        {
          if(textBox1.Text.Length!=0)  using (OleDbCommand cmd=new OleDbCommand("INSERT INTO T1(NA)VALUES('" + textBox1.Text+ "')",cnn))
            {
                cnn.Open();
                cmd.ExecuteNonQuery();
                cnn.Close();
            }
            GetData();
        }
       
      
    }
}

RefillListBox.rar

1

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#19

تم التطبيق بنجاح ... شكراً شكراً شكراً

#20

مشكلة بسيطة ظهرت وهي انه عند التحريك بين items (السطور) الموجود في listbox لا يتغير القيم الموجود في textbox المرتبطة معه بنفس databindings

 

post-235772-0-63166800-1393198825.png

#21

اذا كنت تستخدم DataBinding  فاجعل عمليه تعبئة البيانات بواسطة DataSet فقط

 private void Form1_Load(object sender, EventArgs e)
        {
            GetData();
            textBox1.DataBindings.Add("Text", ds.Tables[0], "Na");
        }

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

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