PDA

View Full Version : پر کردن دیتاگرید با stored procedure



elmira_63
یک شنبه 04 مرداد 1388, 15:03 عصر
سلام دوستان
من با کد زیر میخوام یه دیتا گرید رو پرکنم ولی نمی شه نمی دونم اشکال کارم کجاست؟



scom = new SqlCommand("SP_SearchCustomer1", scon);
scom.CommandType = CommandType.StoredProcedure;
scom.Parameters.Add(new SqlParameter("@PCompanyName", comboBox1.Text));
scon.Open();
dr = scom.ExecuteReader();
if (dr.Read())
{
dataGridView1.DataSource = dr;
}
dr.Close();
scon.Close();

ali_kolahdoozan
یک شنبه 04 مرداد 1388, 15:50 عصر
اینی که نوشید از بیخ و بون داغونه . چرا هر بار در حلقه مقدار رو سعی میکنید bind کنید؟ این کلا غلطه .

sara62
یک شنبه 04 مرداد 1388, 16:15 عصر
دوست عزیز این کد رو امتحان کن کارت رو را میندازه

da = new SqlDataAdapter("myStoredProcedure", con);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
da.SelectCommand.Parameters.Add(new SqlParameter("@parameter",parameter));
con.open();
da.Fill(dataset,"mytable");
con.close();
dataGridView1.DataSource=ds.Tables["mytable"];موفق باشید

Unknownlive
یک شنبه 04 مرداد 1388, 16:47 عصر
دوست عزیز به روش زیر عمل کن
SqlDataAdapter da = new SqlDataAdapter("", con);
SqlCommand cmd = new SqlCommand("", con);
DataSet ds = new DataSet();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "show_process";

cmd.Parameters.Clear();
cmd.Parameters.Add("@S",part_maint.m.prosecce_type);
da.SelectCommand = cmd;
da.Fill(ds, "t2");

dataGridView1.DataSource = ds;
dataGridView1.DataMember = "t2";
البته می تونی اصلا از SQLcommand استفاده نکنی و همه را با Data Adapter بنویسی خاصی بگو تا بگم

elmira_63
دوشنبه 05 مرداد 1388, 11:40 صبح
اینی که نوشید از بیخ و بون داغونه . چرا هر بار در حلقه مقدار رو سعی میکنید bind کنید؟ این کلا غلطه .

اینو برای این توی حلقه نوشتم که ببینم اصلا دیتا ریدرم چیزی می خونه یا نه البته یه مسیج باکس گذاشته بودم توی شرطم که ببینم دیتاریدرم چیزی می خونه یا نه یادم رفت شرط رو بردارم به هر حال از تذکرتون ممنون

elmira_63
دوشنبه 05 مرداد 1388, 16:46 عصر
دوست عزیز به روش زیر عمل کن
SqlDataAdapter da = new SqlDataAdapter("", con);
SqlCommand cmd = new SqlCommand("", con);
DataSet ds = new DataSet();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "show_process";

cmd.Parameters.Clear();
cmd.Parameters.Add("@S",part_maint.m.prosecce_type);
da.SelectCommand = cmd;
da.Fill(ds, "t2");

dataGridView1.DataSource = ds;
dataGridView1.DataMember = "t2";
البته می تونی اصلا از SQLcommand استفاده نکنی و همه را با Data Adapter بنویسی خاصی بگو تا بگم

با دیتا ریدر که نوشتم جواب نداد همون کد بالاست که دوستمون گفته بود خیلی داغونه
با این کد شما هم این قسمت رو نمیدونم چیه

part_maint.m.prosecce_type
t2 هم همون جدول مورد نظر هستش دیگه ؟
حالا اگه ما توی stored procedure مون از innerjoin بین چند جدول استفاده کرده باشیم اسم کدوم جدول رو به جای t2 بنویسم؟؟

sara62
پنج شنبه 08 مرداد 1388, 20:39 عصر
t2 هم همون جدول مورد نظر هستش دیگه ؟
حالا اگه ما توی stored procedure مون از innerjoin بین چند جدول استفاده کرده باشیم اسم کدوم جدول رو به جای t2 بنویسم؟؟

سلام
ببنید، t2 که دوستمان استفاده کرده در واقع جدولی است که خودمان در dataset تعریف کردیم که با DataAdapter پرش میکنیم پس دلیلی نداره حتما هم نام جداول در پایگاه داده باشه