პარამეტრების დინამიურად გადაცემა

SQL სკრიპტის გადაცემისას ADO.NET ამოწმებს სკრიპტის სისწორეს და შემდეგ გადასცემს მონაცემთა ბაზას, თუ გვინდა რომ გადასაცემ SQL სკრიპტში ვცვალოთ რაიმე პარამეტრები, ამისთვის აუცილებელია სტრინგის ტიპის ცვლადები სკრიპტში ჩავსვათ პარამეტრების ადგილას, მაგრამ ასეთი მეთოდი არ არის გამართლებული, რადგან ბაზაზე ყოველი მიმართვის წინ ხდება სტრინგის ხელახალი ვოლიდაცია
უმნიშვნელო ცვლილები შემთხვევაშიც კი. ამის გამო სკრიპტის ტრინგისთვის პარამეტრების გადასაცემად გამოიყენება, პარამეტრების დინამიურად გადაცემის მეთოდი. როგორც ქვემოთ მაგალითში ჩანს values(@comp,@name,@crew,@gnr) პარამეტრები დაწერილია @ სიმბოლოთი რაც SQL–ის ენაზე ნიშნავს, რომ მოცემული პარამეტრები ცვლადებია, გამომდინარე აქედან პირველი მიმართვის დროს მოხდება სკრიპტის ვოლიდაცია ხოლო ყოველი შემდგომი მომართვაზე პიდაპირ გადაეცემა query, ხოლო რაც შეეხება ცვლადებს, მათი გადაცემა ხდება SqlParameter პროპერთით.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;

namespace ConsoleApplication20 {
class Program {
static void Main(string[] args) {
string company, name, crew, generation;
Console.WriteLine(“company”);
company = Console.ReadLine();
Console.WriteLine(“Name”);
name = Console.ReadLine();
Console.WriteLine(“crew”);
crew = Console.ReadLine();
Console.WriteLine(“generation”);
generation = Console.ReadLine();

SqlCommand sqlCmnd = new SqlCommand(@”insert into Airplane(company,Name,crew,generation) values(@comp,@name,@crew,@gnr)”,

new SqlConnection(@”server= .\sqlexpress; database=Aviation; integrated security = true”));
try {
//ცვლადების მიწოდება მასივის სახით ყველაზე მოხერხებულია
sqlCmnd.Parameters.AddRange(new SqlParameter[]{
new SqlParameter(“comp”, company),
new SqlParameter(“name”, name),
new SqlParameter(“crew”, crew),
new SqlParameter(“gnr”, generation)
}
);
//sqlCmnd.Parameters.Add(new SqlParameter(“comp”, company));
//sqlCmnd.Parameters.AddWithValue(“name”, name);
//sqlCmnd.Parameters.Add(“crew”, System.Data.SqlDbType.TinyInt);//დასახელებასთან ერთად გადაეცემა SQL ცვლადის ტიპი
//sqlCmnd.Parameters[“crew”].Value = crew;
//sqlCmnd.Parameters.AddWithValue(“gnr”, generation);

sqlCmnd.Connection.Open();//Connection პროპერთი გვიბრუნებს SqlConnection–ის ობიექტს
sqlCmnd.ExecuteNonQuery();//მოცემული ფუნქციით ხდება Query-ს მხოლოდ გადაცემა
//და აბრუნებს ინფორმაციას თუ რამდენი ველზე მოხდა ცვლილება
} catch(Exception ex) {
Console.WriteLine(ex);
} finally {
sqlCmnd.Connection.Close();
}
Console.ReadKey();
}

}
}

Advertisements
This entry was posted in ADO.NET. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s