igurbev.net



ЗАПИС НА ОБЕКТ В БАЗА ДАННИ

Показан е прост пример, в който обект от класа Car бива създаден, записан в базата и прочетен от там. Следва кода на примера:


using System;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;
[Serializable]

public class Car{

     public string name;
     public int age;

     public Car(string name,int age){
         this.name=name;
         this.age=age;
    }

     public void Up(){
         age++;
     }
}


public class Test{

     public static void Main(){

           //иска от потребителя да въведе модел и години на колата
         Console.Write("модел:");
         string sname=Console.ReadLine();
         Console.Write("години:");
         string sage=Console.ReadLine();

         //съдава обекта
         Car car=new Car(sname,Int32.Parse(sage));


         //Подготвя серилизацията на обекта
         MemoryStream ms=new MemoryStream();
         BinaryFormatter b=new BinaryFormatter();
         b.Serialize(ms,car);


         //Създава връзката с базата данни
         SqlConnection con=new SqlConnection ( "server=localhost;uid=sa;pwd=;database=test");
         con.Open();

         SqlDataAdapter ad=new SqlDataAdapter("select * from tst",con);
         DataSet ds=new DataSet();
         ad.Fill(ds,"tblFile");

         DataTable dbTable = ds.Tables["tblFile"];
         DataRow dbRow = dbTable.NewRow();

         // Организира записа като ред на таблицата
         dbRow["id"] = "kimlee";
         dbRow["obj"] = ms.GetBuffer();
         dbRow["len"]=ms.Length;
         dbTable.Rows.Add(dbRow);

         // Обновява базата
         SqlCommandBuilder cb=new SqlCommandBuilder(ad);
         ad.Update(ds, "tblFile");

         //Прочита записа и демострира резултата
         SqlCommand comd=new SqlCommand("select * from tst",con);
         SqlDataReader sr=comd.ExecuteReader();

         while(sr.Read()){
             byte[] cc=new byte[(int)sr["len"]];
             sr.GetBytes(1,0,cc,0,(int)sr["len"]);
             MemoryStream mss=new MemoryStream(cc);
             Car dcar=(Car)b.Deserialize(mss);
             dcar.Up();
             Console.Write("name:");
             Console.WriteLine(dcar.name) ;
             Console.Write("age:");
             Console.WriteLine(dcar.age) ;
         }
         con.Close();
     }
}





коментари




добави коментар
 име: