این دو تا قطعه کد چی کار می کنن؟

mahvashm

New Member
سلام دوستان
من میخاستم بدونم که این 2 تا قطعه کد چی کار میکنن (در #C است)؟

SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=C:\\USERS\\AMIN\\DESKTOP\\ERFAN\\PROG\\WINDOWSAPPLICATION4\\BIN\\DEBUG\\USER.MDF;Integrated Security=True");
SqlDataAdapter Adapter = new SqlDataAdapter();
DataTable dt = new DataTable();
SqlCommand cmd1 = new SqlCommand();
cmd1.Connection = conn;
cmd1.CommandText = "SELECT * FROM Student";
conn.Open();
SqlDataReader reader = cmd1.ExecuteReade


-------------------------------------------------------------------------------------------------------------------------------
Adapter.SelectCommand = new SqlCommand();
Adapter.SelectCommand.Connection = conn;
Adapter.SelectCommand.CommandText = "SELECT * FROM us";
DataTable dt = new DataTable();
Adapter.Fill(dt


لطفا به من کمک کنید . خیلی احتیاج دارم .
با تشکر.

 

the_king

مدیرکل انجمن
سلام دوستان
من میخاستم بدونم که این 2 تا قطعه کد چی کار میکنن (در #C است)؟

کد:
SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=C:\\USERS\\AMIN\\DESKTOP\\ERFAN\\PROG\\WINDOWSAPPLICATION4\\BIN\\DEBUG\\USER.MDF;Integrated Security=True");
یک SqlConnection به نام conn می سازه که مستقیما به یک بانک اطلاعاتی SQL Server وصل میشه
که فایل اش USER.MDF است و مسیرش مشخص شده. SqlConnection برای برقراری ارتباط با پایگاه داده های
تحت SQL Server بکار می ره.

کد:
SqlCommand cmd1 = new SqlCommand();
یک SqlCommand به نام cmd1 می سازه که می تونه یک فرمان SQL رو اجرا کنه.

کد:
                cmd1.Connection = conn;
cmd1 رو به conn مرتبط می کنه تا مشخص بشه که دستور cmd1 روی کدوم بانک اطلاعاتی اجرا خواهد شد.

کد:
                cmd1.CommandText = "SELECT * FROM Student";
دستور SQL ای را در cmd1 قرار میده که تمامی محتویات جدول Student رو انتخاب کنه.

کد:
                conn.Open();
توسط conn دستور برقراری ارتباط با بانک اطلاعاتی رو میده، از این لحظه به بعد به بانک اطلاعاتی دسترسی داریم.

کد:
                SqlDataReader reader = cmd1.ExecuteReade
یک SqlDataReader به نام reader ایجاد می کنه، دستور داخل cmd1 اجرا میشه و نتیجه توسط reader
قابل دریافت است، یعنی الان reader می تونه محتویات جدول Student رو بخونه.

کد:
SqlDataAdapter Adapter = new SqlDataAdapter();
یک SqlDataAdapter با اسم Adapter می سازه که برای خواندن و نوشتن محتویات بانک اطلاعاتی بکار میره.

کد:
DataTable dt = new DataTable();
یک DataTable به نام dt می سازه که می تونه نتیجه یک Query یا محتویات یک جدول رو در داخلش قرار داد.

کد:
Adapter.SelectCommand = new SqlCommand();
برای Adapter یک دستور Select پیشفرض ایجاد می کنه که می تونه تمامی اطلاعات رو انتخاب کنه.

کد:
            Adapter.SelectCommand.Connection = conn;
دستور Select داخل Adapter رو به همون conn ای مرتبط می کنه که به بانک اطلاعاتی دسترسی داشت.
از این لحظه به بعد دستور Select داخل Adapter هم به بانک اطلاعاتی دسترسی دارد.

کد:
            Adapter.SelectCommand.CommandText = "SELECT * FROM us";
دستور SQL ای را در دستور Select داخل Adapter قرار میده که تمامی محتویات جدول us رو انتخاب کنه.

کد:
            DataTable dt = new DataTable();

کد:
            Adapter.Fill(dt);
محتویات جدول us رو توسط Adapter می خونه و درون dt قرار میده. الان dt تمامی محتویات جدول us رو داره.
 

mahvashm

New Member
یک دنیا سپاس .خیلی لطف بزرگی در حقم کردین .فقط یک سوال دیگه داشتم .سوالم اینکه nvarchar از چه نوع متغیری ؟
 

the_king

مدیرکل انجمن
یک دنیا سپاس .خیلی لطف بزرگی در حقم کردین .فقط یک سوال دیگه داشتم .سوالم اینکه nvarchar از چه نوع متغیری ؟

nvarchar مشابه string های عادی در زبان های Net. است، رشته ای با طول متغیر و کاراکتر های Unicode

در Microsoft SQL چند نوع رشته string وجود داره، گروهی که با حرف n شروع می شوند کاراکتر های Unicode
رو ذخیره می کنند، یعنی هر کاراکتر دو بایت جا می گیره و برای نوشتن متن های چند زبانه و حروفی که لاتین نیستند
نیستند مناسب ترند. حداکثر طول رشته ای که در nchar و nvarchar قرار می گیرد 4000 کاراکتر است :
کد:
nchar, nvarchar, ntext

گروهی که با حرف n شروع نمی شوند کاراکتر های ANSI رو ذخیره می کنند، یعنی هر کاراکتر یک بایت جا می گیره
و معمولا فقط مناسب متن های تک زبانه و حروف لاتین هستند. حداکثر طول رشته ای که در char و varchar
قرار می گیرد 8000 کاراکتر است :
کد:
char, varchar, text

نوع داده text و ntext رشته هایی با طول های متفاوت را ذخیره می کنند اما صرفا مناسب رشته های خیلی طولانی
(مثلا 500 میلیون کاراکتر) هستند و حدالامکان ازشون استفاده نمیشه چون تنها برخی از توابع رشته ای انواع داده ای
ntext و text را می پذیرند. اگر رشته ای که ذخیره می کنید چند میلیون کاراکتری نیست از این دو نوع داده استفاده نکنید.

بجز text و ntext بقیه انواع داده ای به دو گروه تقسیم می شوند، آنهایی که در اسمشان var وجود دارد و آنهایی که وجود ندارد.
انواع داده هایی که در اسمشان var وجود دارد رشته را با طول متغیر ذخیره می کنند و عددی که داخل
پارانتز مشخص می شود حداکثر طول رشته است. مثلا (varchar(8 حداکثر یک رشته 8 کاراکتری را ذخیره می کند
اما اگر یک رشته دو کاراکتری را در آن ذخیره کنید همانطور دو کاراکتری ذخیره می شود.
کد:
nvarchar, varchar

اما نوع داده هایی که در اسمشان var وجود ندارد رشته را با طول ثابت حداکثری شان ذخیره می کنند و عددی که
داخل پارانتز مشخص می شود دقیقا طول رشته است و حتی اگر لازم باشد با اضافه کردن کاراکتر فاصله طول
رشته را بیشتر می کنند تا طول رشته ها ثابت باشد.
مثلا (char(8 رشته های 8 کاراکتری را ذخیره می کند و اگر یک رشته دو کاراکتری را در آن ذخیره کنید،
6 کاراکتر فاصله (Space) به سمت راست اش اضافه می کند تا طولش 8 کاراکتر شود :
کد:
char, nchar

دقت کنید که عموما نوع داده هایی که در اسمشان var دارند مناسب تر اند، مخصوصا در جستجوی رشته ها. فرضا
اگر نوع داده فیلد name را فرضا (nchar(20 قرار دادید بعدا برای پیدا کردن نام ali نباید از شرط زیر
استفاده کنید :
کد:
name = 'ali'
چون تمامی مقادیر فیلد name دقیقا 20 کاراکتری خواهند بود و رشته 3 کاراکتری وجود ندارد. باید از شرط زیر
استفاده کنید :
کد:
name = 'ali                 '

برای جلوگیری از این مشکلات در اغلب موارد nvarchar نوع داده مناسب است، هم Unicode است و
حروف غیر لاتین، مثلا فارسی را بخوبی ذخیره می کند و هم رشته هایی با طول متفاوت را می پذیرد.
 

جدیدترین ارسال ها

بالا