PDA

View Full Version : استفاده از دستورات SQL در C#



ShimaSh
شنبه 25 آذر 1385, 09:00 صبح
سلام.
من تازه شروع به کار با C#.net کرده ام.لطف کنید کدهای save, delete, insert را تایپ کنید. ممنون :چشمک:

Crazy_Clever
شنبه 25 آذر 1385, 11:52 صبح
سلام دوست عزیز
من هم تازه کار هستم و اینجا خیلی چیز یاد گرفتم.(ولی هنوزم هیچی بلد نیستم)
میشه لطفاً کمی بیشتر در مورد مشکلت توضیح بدی؟!؟ تا دوستان راحت تر کمکت کنن

m_nejad
شنبه 25 آذر 1385, 12:00 عصر
توی سایت یک کتاب الکترونیکی رایگان در مورد #C وجود داره جستجو کنید

ShimaSh
یک شنبه 26 آذر 1385, 12:37 عصر
لطفا کدها را با C#.net تایپ کنید. باز هم ممنون

سار
یک شنبه 26 آذر 1385, 13:33 عصر
بسته به DB شما کدها هم فرق میکنه.
NameSpaceهای زیر را برسی کنید :
System.Data.OleDb برای Accsess
System.Data.SqlClient برای SQL Server

برای Insert,UpDate,Delete چیزی مانند این :


OleDbConnection conn = new OleDbConnection("ConnectionString");
OleDbCommand cmd = new OleDbCommand();
conn.Open();
cmd.CommandText = "SQL Insert/UpDate/Delete Commands";
cmd.ExecuteNonQuery();
conn.Close();


و برای Select چیزی مانند این :


OleDbDataAdapter adapt = new OleDbDataAdapter();
adapt.SelectCommand = cmd;
DataSet ds = new DataSet();
cmd.CommandText = "SQL Select Command";
cmd.ExecuteNonQuery();
adapt.Fill(ds);

ShimaSh
سه شنبه 28 آذر 1385, 08:39 صبح
من کتاب الکترونیکی در مورد #C پیدا نمی کنم. کجاســــــــــــــــت؟

سار
سه شنبه 28 آذر 1385, 09:43 صبح
http://www.barnamenevis.org/forum/showthread.php?t=51504

اَرژنگ
سه شنبه 28 آذر 1385, 15:47 عصر
با سلام
لطفاْ به مطالب ذیلاْ‌ توجه فرمائید:
۱) عنوان توپیک با توپیک باید ربط داشته باشه، عنوانی مانند "استفاده از داتبیس" و یا "استفاده از Sql در #C " شاید یکمی بیشتر با ربط‌ به سوال فرستاده شده بود.
۲) توپیکهایه جداگانه را در یک بحث ادامه ندید، آخرین سوال فرستاده شده ربطی به سی شارپ نداره، شاید فرستادن به انجمن اکسس کار درست تری میبود.
۳) قوانین را بخونید، مدیران وقتشان ارزشمنده، به مسائل مهمتر باید رسیدگی کنند، با پیروی از قوانین میتونید کمکشان کننید که به شما کمک کنند، ۱ و ۲ نقض قوانین این سایت است. حالا یکی از مدیران باید وقتش را هدر به رسیدگی به نقض قوانین در این توپیک کنند.
با احترام

ShimaSh
چهارشنبه 13 دی 1385, 12:47 عصر
سلام, دوباره من به یه مشکل اساسی برخورد کردم.دو فیلد به نام شرکت و قیمت و یک PK دارم که در یک رکورد ممکن است از 3 تا 20 نام شرکت با قیمتهای مختلف داشته باشم.
برای ذخیره این اطلاعات چه کار باید کنم؟
20 فیلد باید درنظر بگیرم یا راهی برای تغییر اندازه رکورد وجود دارد?
یا فقط سه فیلد درنظر بگیرم و در کد نویسی (برنامه) باید کاری کرد؟ (چه کنم)

ali1381
چهارشنبه 13 دی 1385, 13:15 عصر
اگه درست متوجه منظور شما شده باشم شما می خواهید یک تیبل داشته باشید که نام شرکت و قیمت پیشنهادی آن شرکت را در مورد یک کالا یا ... ذخیره کنید. بهترین راه اینه که شما دو تا تیبل تعریف کنی که در یکی نام کالا یا .... را همراه با یک id ذخیره کنی و یک تیبل دیگه که در اون شماره id کالا یا ... و نام شرکت و قیمت پیشنهادی اون شرکت رو ذخیره کنید. اگر هم یک شرکت قیمتهای متفاوتی ممکن است بدهد فقط در تیبل دوم id و قیمت پیشنهادی رو قرار بده .
امیدوارم درست متوجه منظورتون شده باشم . موفق باشید

ShimaSh
چهارشنبه 13 دی 1385, 13:36 عصر
سلام
ممنون از راهنمایی.
امتحان می کنم, امیدوارم جواب بگیرم

ShimaSh
چهارشنبه 13 دی 1385, 13:43 عصر
وای من یه جدول دیگه برای شرکتها هم دارم, اینطوری نام شرکتم در دو جدول می یاد.
فکر نمیکنم درست باشه, نظر شما چیه؟

ali1381
چهارشنبه 13 دی 1385, 13:55 عصر
اگه نام شرکت ها رو در یه جدول دیگه داری فقط از ID اونا در تیبل جدیدت استفاده کن اینجوری بهتره

ShimaSh
پنج شنبه 21 دی 1385, 07:23 صبح
سلام, ممنون ایده خوبی بود.

مهدی رحیم زاده
پنج شنبه 21 دی 1385, 07:30 صبح
تا بعد از ظهر یه کتاب خوب براتون میزارم

hesham_javan
پنج شنبه 21 دی 1385, 22:48 عصر
سلام
تایپیک من رفته به صفحه 2 و هیچ کس تا حالا منو راهنمایی نکرده من نمی دونم چرا:عصبانی++:
با با باور کنید منم به راهنمایی احتیاج دارم:گریه:
نقل قول :
برای ساخت یک Help برای نرم افزار مثل Adobe Acrobat Reader Help در محیطی که به وسیله سی شارپ نوشته شده چه می شود کرد. :متفکر:
اگر کسی میداند لطفآ راهنمایی کند

وقتی که در پروژه از نوار ابزار و دکمه های استاندار آن استفاده کردم و دوباره آن را پاک یا دکمه جدیدی به آن اضافه کردم باز هم همان نوار ابزار اولیه را نمایش می دهد با اینکه آن را ذخیره و جند بار اجرا کردم:اشتباه:

hesham_javan
پنج شنبه 21 دی 1385, 22:52 عصر
برای فعال و غیر فعال کردن گزینه های منوی Edit مثل Cut,Copy ، کنترل TextBox گزینه SelectionLength را دارد اما اگر بخواهیم در یک DataGrid از آن استفاده کنیم به چه شکل است
هر کس تونست درباره این چندتا سوال رهنماییم کنه! ممنون:افسرده:

ShimaSh
یک شنبه 15 بهمن 1385, 08:40 صبح
سلام.
من سوال اولمو که تاپیک با اون شروع شد درست جواب نگرفتم.

ممکنه لطفا کدهای update, save, delete, insert را تایپ کنید. دیتا بیسم SQL server هست منتها کدهایی که دوستان زحمت کشیدن تایپ کردن برا access هست.

ممنــــــــــــــــــــــ ـون, شیما

iman_s52
یک شنبه 15 بهمن 1385, 08:58 صبح
برای Insert,UpDate,Delete میتونی از sqlCommand استفاده کنی
برای Select هم می تونی از sqlDataAdapter( البته واسه بقیه هم می تونی)

ShimaSh
پنج شنبه 26 بهمن 1385, 17:20 عصر
سلام.
با پوزش بسیار. من دوباره اومدم با کلی اشکال
Suspect???!!!
بعد از ساخت جدولام در SQL وبعد وقتی اولیم TEXtboxam رو به دیتا بیس وصل می کنم. جدولم پاک می شه و زیره دیتا بیسم Suspecti. می نویسه!
این یعنی چی ؟
ممنون می شم از راهنمایی.
مـــــــــــــــــرسی

ShimaSh
شنبه 28 بهمن 1385, 10:12 صبح
سلام.
فکر می کنم اشکالمو نامفهوم پرسیدم.

من با sql جداولمو می سازم و بعد در سی شارپ وقتی اولین Text box را به فیلد مربوطه bind می کنم. جدولم در دیتا بیس پاک می شه.(یعنی زیره دیتا بیسم می نویسه Suspect).

ممنون می شم راهنمایی کنید.

مــــــــــــــــــــرسی, شِِِِِِِِِِِِما

aligh662000
شنبه 28 بهمن 1385, 16:56 عصر
برای Insert,UpDate,Delete چیزی مانند این :


OleDbConnection conn = new OleDbConnection("ConnectionString");
OleDbCommand cmd = new OleDbCommand();
conn.Open();
cmd.CommandText = "SQL Insert/UpDate/Delete Commands";
cmd.ExecuteNonQuery();
conn.Close();



این کد یک اشکال داره به نظر من الان
کامند و کانکشن به هم مرتبط نیستند!!!
برای این ارتباط چی کار باید بکنیم
این کد چرا غلطه؟!

cmd.Connection = globalVars.cnn;

iranrose63
شنبه 28 بهمن 1385, 18:24 عصر
دو راه برای ایجاد ارتباط وجود دارد
1-

OleDbConnection con=new OleDbConnection();

OleDbCommand cmd = new OleDbCommand();

cmd.Connection=con;

2-

OleDbConnection con=new OleDbConnection();

OleDbCommand cmd = new OleDbCommand("com text", con);

ShimaSh
چهارشنبه 09 اسفند 1385, 08:59 صبح
برای ذخیره در دیتا بیس SQL :
sqlConnection1.ConnectionString = "data source=.;packet size=4096;integrated security=SSPI;initial catalog=database name;persist security info=False";
SqlCommand objcom = newSqlCommand();
objcom.Connection = sqlConnection1;
objcom.CommandText = "INSERT INTO table name"+
"(fild1,fild2,fild3,fild4)"+
"VALUES(@fild1,@fild2,@fild3,@fild4)";
objcom.Parameters.AddWithValue("@fild1",textBox1.Text);
objcom.Parameters.AddWithValue("@fild2", textBox2.Text);
objcom.Parameters.AddWithValue("@fild3", textBox3.Text);
objcom.Parameters.AddWithValue("@fild4", textBox4.Text);
sqlConnection1.Open();
objcom.ExecuteNonQuery();
sqlConnection1.Close();

اَرژنگ
جمعه 11 اسفند 1385, 09:54 صبح
برای ذخیره در دیتا بیس SQL :
sqlConnection1.ConnectionString = "data source=.;packet size=4096;integrated security=SSPI;initial catalog=database name;persist security info=False";
SqlCommand objcom = newSqlCommand();
objcom.Connection = sqlConnection1;
objcom.CommandText = "INSERT INTO table name"+
"(fild1,fild2,fild3,fild4)"+
"VALUES(@fild1,@fild2,@fild3,@fild4)";
objcom.Parameters.AddWithValue("@fild1",textBox1.Text);
objcom.Parameters.AddWithValue("@fild2", textBox2.Text);
objcom.Parameters.AddWithValue("@fild3", textBox3.Text);
objcom.Parameters.AddWithValue("@fild4", textBox4.Text);
sqlConnection1.Open();
objcom.ExecuteNonQuery();
sqlConnection1.Close();

چند تا اشکالات این نوع کدها:
۱) هارد کد کردنه کانکشن استرینگ
۲) هارد کد کردنه استفاده از داتبیس با منطق برنامه (که اصلاًَ وجود نداره در این مثال) و لایه گرافیک .
۳) استفاده نکردن از استورد پروسیجر بجایه استفاده از اس‌کیو‌ال هارد کد شده
۴) استفاده نکردن از روشهایه ۳ لایه و چند لایه. برایه یک آموزش مبتدی به http://asp.net/learn/dataaccess/default.aspx?tabid=63 رجوع کنید..
۵) استفاده نکردن ازاوّلین اصول برنامه نویسی، به جایه هارد کرد کردن و TextBox1, TextBox2...، از یک متد استفاده کردن و پارامترهایی را که اس‌کیو‌ال استفاده مینکه را با اسمهایه درست مانند fName, LName, DOB، و غیره استفاده کردن.
۶) اگر کد را برایه مبتدیها پست میکنیدد کد تمیز پست کنید، اگر که این کدی است که برایه پروژهایه خودتان استفاده میکنید و برایه دادن یک مثال سریع اینجا کپی کردید برایه یاد گرفتن اصول برنامه‌نویسی و اصول کد نویسی یکمقداری وقت بگذارید.
۷) استفاده نکردن از تگ کد :)
موفق باشید

ShimaSh
یک شنبه 13 اسفند 1385, 07:31 صبح
سلام.

این آقا ارژنگ خودش و کشت تا بلاخره بعد از اینکه چند دفعه نوشتند و پاک کردند, تصمیم گرفتند که چی بنویسند تا نخوان دیگه پاکش کنند.

بهرحال ممنون از راهنمایشون. لینکی و که زحمت کشیدند و فرستادند بنظر بدرد بخور می یاد البته من هنوز وقت نکردم بخونمش.

در آخر: به قول این شاه غلام ما ناگفته نماند که من وقتی یک دو تا از این ایتم ها رو می خونم می بینم که در برنامم همینطور که ایشون فرمودند استفاده کردم ولی دلیلی نمی دیدم برا پست هم همین کارو کنم.

مرســـی شیمـــا