PDA

View Full Version : استور پروسیجر (storedprocedure) در سی شارپ



Pedram_Parsian
شنبه 04 مرداد 1393, 00:19 صبح
با سلام به دوستان ....

من یه Query حدودا 200 خطی نوشتم که یه گزارشی از لیست کارمندان هست ...
حالا می خواستم اون رو در داخل برنامه اجرا و درون یه DataGridView نتیجه رو نشون بدم ...
تا جایی که یادمه من قبلا با این کد کار می کردم ... :
(ولی من نمی خوام Query رو داخل برنامه بنویسم :لبخند:)

SqlConnection strConnection = new SqlConnection("server=(local);Database = Anbar;Integrated Security = SSPI");
SqlCommand cmd = new SqlCommand();
SqlDataReader dataReader;
string strSQL = "SELECT * FROM Goods WHERE Id = 1";
cmd.CommandText = strSQL;
cmd.CommandType = CommandType.Text;
cmd.Connection = strConnection;
strConnection.Open();
SqlDataAdapter dataAdapter = new SqlDataAdapter(strSQL, strConnection);
SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);
DataTable table = new DataTable();
dataAdapter.Fill(table);
DataGridView.DataSource = table;
dataReader = cmd.ExecuteReader();
strConnection.Close();

ولی حالا می خوام اگه بشه Query ها داخل SQL باشه و من از برنامه اون ها رو فراخونی کنم ....
ممنون میشم راهنمایی کنید :لبخند:

Mahmoud.Afrad
شنبه 04 مرداد 1393, 00:38 صبح
میبایست از storedprocedure استفاده کنی
http://barnamenevis.org/showthread.php?435690
http://barnamenevis.org/showthread.php?348780&p=1538593#post1538593
http://barnamenevis.org/showthread.php?435874

erfan_urchin
شنبه 04 مرداد 1393, 01:36 صبح
شما همه ی 200خط کد رو توی procedure بنویس و بعد بیا procedure رو از طریق #C فراخوانی کن. مثل زیر:
SqlDataAdapter sd = new SqlDataAdapter ("exec MyProcedure");
اگر هم ورودی داره کدت (مثلا آیدی باید بش بدی)، باید این کارو کنی
SqlDataAdapter sd = new SqlDataAdapter ("exec MyProcedure 10");
موفق باشی

ahangari365
یک شنبه 05 مرداد 1393, 17:40 عصر
این عکس رو ببینید.

121610

پروسیجری که من تو sql server نوشتم این پارامترها رو میگره تا سرچ بر اساس اینا انجام بشه.
حالا من میخوام کد نویسی شو یعنی طرز استفاده از این پروسیجر رو تو سی شارپ کارکنم.اما نمیدونم چه طور باید اینکار رو کرد.
من تو سی شارپ یه فرم دارم طبق معمول چند تا radiobatton گذاشتم تا هر کدوم رو که کلیک کردم بر اساس همون مثلاً بر اساس
شماره پرونده داده ها مو تو دیتا گرید ویویی که تو فرمم گذاشتم پیدا کنم.
کلاً این عملیات رو میخوام تو سی شارپ کد نویسی کنم.
لطفاً کسی میدونه کمکم کنه!
نیاز به جواب فوری!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!:متفک ر::متفکر::ناراحت::افسرده::متف کر::متفکر:

mz6488
یک شنبه 05 مرداد 1393, 18:20 عصر
خود پروسیجر رو که میتونی با دستور exec procedure @p1,@p2 به sql بفرستی.در مورد سایر فیلد ها هم میتونی همه پارامترها رو هم بفرستی ولی موقع سرچ کردن از like استفاده کن.فقط اینو هم در نظر داشته باش که اگه مقادیر null تو ستون مربوطه باشه این روش جواب نمیده.

ahangari365
یک شنبه 05 مرداد 1393, 19:24 عصر
خود پروسیجر رو که میتونی با دستور exec procedure @p1,@p2 به sql بفرستی.در مورد سایر فیلد ها هم میتونی همه پارامترها رو هم بفرستی ولی موقع سرچ کردن از like استفاده کن.فقط اینو هم در نظر داشته باش که اگه مقادیر null تو ستون مربوطه باشه این روش جواب نمیده.

ببینید کد من برای سرچ در محیط کد نویسی از یه جدول اینه.!


if (radioButton13.Checked == true)
{

ds.Clear();

da = new SqlDataAdapter("select * from Table1 where cod_parvandeh like" + "'%" + textBox1.Text.Trim() + "%'", conn);
da.Fill(ds, "Table1");
dataGridView1.DataSource = ds.Tables["Table1"];
conn.Close();
}
else { }


حالا چطور پروسیجری که تو بانک دارم تو سی شارپ بیارم و کد نویسی کنم؟ کلاً با پروسیجر تو سی شارپ کار نکردم.

mz6488
یک شنبه 05 مرداد 1393, 20:20 عصر
کافیه دستور اجرای پروسیجر رو که بالا گقتم جایگزین این کوئری که نوشتین بکنید

aslan
یک شنبه 05 مرداد 1393, 20:30 عصر
ببینید کد من برای سرچ در محیط کد نویسی از یه جدول اینه.!


if (radioButton13.Checked == true)
{

ds.Clear();

da = new SqlDataAdapter("select * from Table1 where cod_parvandeh like" + "'%" + textBox1.Text.Trim() + "%'", conn);
da.Fill(ds, "Table1");
dataGridView1.DataSource = ds.Tables["Table1"];
conn.Close();
}
else { }


حالا چطور پروسیجری که تو بانک دارم تو سی شارپ بیارم و کد نویسی کنم؟ کلاً با پروسیجر تو سی شارپ کار نکردم.

سلام
لینک های زیر را مطالعه کنید :
http://stackoverflow.com/questions/7542517/call-a-stored-procedure-with-parameter-in-c-sharp
http://social.msdn.microsoft.com/Forums/en-US/e9d17dcf-55ce-4a67-9a56-f5955638e51e/call-stored-procedure-in-c?forum=adodotnetdataproviders