вторник, 23 ноября 2010 г.

Чтение данных с Excel

 public class TarufExcel
    {
        private DataClasses1DataContext data()
        {
            return DataProvider.DataContext();
        }


        private OleDbConnection Connection()
        {
           return DataProvider.ConnectionExcel();
        }


        public TarufExcel()
        {
            Connection().Open();           
            AdapterFill();
        }
        // Получаем списко листов в файле
        private DataTable ListSheetInFile()
        {
            return Connection().GetOleDbSchemaTable(OleDbSchemaGuid.Tables,
                                     new object[] { null, null, null, "TABLE" });
        }


        private string NameFirstSheet()
        {
            return (string)ListSheetInFile().Rows[0].ItemArray[2];
        }
        // Выбираем все данные с листа
        private string FullDataInFile()
        {
            return String.Format("SELECT * FROM [{0}]", NameFirstSheet());
        }


        OleDbDataAdapter adapte;
        private OleDbDataAdapter DataAdapterTaruf()
        {
           if(adapte==null)
            adapte = new OleDbDataAdapter(FullDataInFile(), Connection());
            return adapte;
        }


        DataSet ds=new DataSet("EXCEL");        
        private void AdapterFill()
        {
          
            DataAdapterTaruf().Fill(ds);
        }
        public DataTable dataTable()
        {            
            return ds.Tables[0];
        }
       
       
        public DataTable dataRow(int i)
        {
            DataTable NewTable = dataTable().Rows[i].Table.Clone();
            NewTable.BeginLoadData();
            NewTable.LoadDataRow(dataTable().Rows[i].ItemArray, true);
            NewTable.EndLoadData();
            return NewTable;        
        }


        taruf t;
        public void CopyExcelToDatabase()
        {            
            foreach(DataRow row in dataTable().Rows)
            {
                t = new taruf();
                t.name = Convert.ToString(row.ItemArray[0]);
                t.cena = Convert.ToInt32(row.ItemArray[1]);
                data().taruf.InsertOnSubmit(t);
                data().SubmitChanges();
            }
        }
    }

суббота, 20 ноября 2010 г.

ASP.NET MVC с использованием LINQ

NerdDinner. Шаг 3: Построение модели

MVC модель DataProvider


    public class DataProvider
    {
        static string
            connectionString = Abonka.Properties.Settings.Default.AbonkaConnectionString;


        static DataClasses1DataContext dataContext;
        public static DataClasses1DataContext DataContext()
        {          
                if (dataContext == null)
                    dataContext = new DataClasses1DataContext(connectionString);


                return dataContext;         
        }






        static string
           _connectionString = Abonka.Properties.Settings.Default.AcountConnectionString;


        static DataClasses1DataContext dataContextAcount;
        public static DataClasses1DataContext DataContextAcount()
        {
            if (dataContextAcount == null)
                dataContextAcount = new DataClasses1DataContext(_connectionString);


            return dataContextAcount;
        }   
    }
}

MVC модель Repository ( Тарифи )




public class TarufRepository
    {
        private DataClasses1DataContext data()
        {
            return DataProvider.DataContext();
        }


        public IQueryable<taruf> GetTarufs()
        {
            return data().taruf.OrderBy(t => t.name).Cast<taruf>();
        }


        public IQueryable<taruf> GetTarufs(taruf tarufs)
        {
            return data().taruf.Select(t => t.id == tarufs.id).Cast<taruf>();
        }


        public taruf GetTaruf(int tarufId)
        {
            return data().taruf.SingleOrDefault(t => t.id == tarufId);
        }


        public void DeleteTaruf(int tarufId)
        {
            data().taruf.DeleteOnSubmit(GetTaruf(tarufId));
            data().SubmitChanges();
        }


        public void UpdateTaruf(taruf Taruf)
        {
            taruf data1 = GetTaruf(Taruf.id);
            data1.id = Taruf.id;
            data1.name = Taruf.name;
            data1.vartist = Taruf.vartist;
            data().SubmitChanges();
        }


        public taruf CreateTaruf(string name, int vartist)
        {
            taruf tar = new taruf();
            tar.name = name;
            tar.vartist = vartist;
            data().taruf.InsertOnSubmit(tar);
            data().SubmitChanges();
            return tar;
        }


        public ObservableCollection<taruf> GetTaruf()
        {
            return new ObservableCollection<taruf>(data().taruf);
        }       


        public void DelTaruf()
        {
            var delete = from pole in data().taruf
                         select pole;


            foreach (var name in delete)
            {
                data().taruf.DeleteOnSubmit(name);
            }
            SaveTaruf();       
        }


        public string SaveTaruf()
        {
            string error = "Дані оновлені!";
            try
            {
                data().SubmitChanges();
            }
            catch (Exception ext)
            {
                error = "Помилка, ви не коректно вели дані";
            }
            return error;
        }
        public IQueryable<taruf> Search(string name)
        {
            return data().taruf.Where(o => o.name.StartsWith(name));
        }
        public object TarufName()
        {
            return from s in data().taruf
                   select s.name;
        }
        public decimal TarufNameVartist(string tar)
        {
            return (from s in data().taruf
                   where s.name==tar
                   select s.vartist).Single().Value;
        }
        public object TarufSetName(string tar)
        {
            return from s in data().taruf
                   where s.name!=tar
                   select s.name;
        }
        public int TarufSetClient(string tar)
        {
            return (from s in data().taruf
                    where s.name==tar
                    select s.id).Single();
        }
        public int TarufNameID(string tar)
        {
            return (from s in data().taruf
                    where s.name == tar
                    select s.id).Single();
        }
    }