1. this is test code which i modified, but its seems not working, let me know the proper solution to retrieve data from DB.
2. Is that enough to write only DataAdapter and client, else i have to write MetaDataAdapter, DataAdapter and client.

Code:
public class MyDataAdapter : IDataProvider
    {
        private IItemEventListener listener;
        private volatile bool go;
        
        private DataTable dt;
        private SqlConnection conn;
        private SqlCommand comm;

        public MyDataAdapter()
        {
            try
            {
                conn = new SqlConnection("Data Source=(local);Database=Northwind; Integrated Security=true;");
                comm = new SqlCommand("Select * from Orders", conn);
                conn.Open();
            }
            catch (Exception ex)
            {
                Console.WriteLine("Error: " + ex);
                throw new DataProviderException(ex.Message.ToString());
            }
        }

        public void Init(IDictionary parameters, string configFile)
        {
            
        }

        public bool IsSnapshotAvailable(string itemName)
        {
            return false;
        }

        /// <summary>
        /// Used to receive a reference to the server's listener
        /// that will be used to inject events.
        /// </summary>
        /// <param name="eventListener"></param>
        public void SetListener(IItemEventListener eventListener)
        {
            listener = eventListener;
        }

        public void Subscribe(string itemName)
        {
            if (itemName.Equals("myData"))
            {
                Thread t = new Thread(new ThreadStart(Run));
                t.Start();
            }
        }

        public void Unsubscribe(string itemName)
        {
            if (itemName.Equals("myData"))
            {
                go = false;
            }
        }

        public void Run()
        {
            go = true;

            while (go)
            {
                try
                {
                    SqlDataReader dr = comm.ExecuteReader();
                    while (dr.Read())
                    {
                        IDictionary eventData = new Hashtable();
                        eventData.Add("OrderID", dr[0]);
                        eventData.Add("UnitPrice", dr[1]);
                        eventData.Add("Quantity", dr[2]);
                        eventData.Add("Discount", dr[3]);

                        listener.Update("myData", eventData, false);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                }
                finally
                {
                    conn.Close();
                }
            }
        }
    }