PDA

View Full Version : گرفتن رکورد های برگشتی



rayanravesh
سه شنبه 01 مرداد 1392, 23:35 عصر
سلام.من یه گرید در صفحه دارم که میخوام همه رکورد هایی که با شرط من درست است رو نشون بده.می خوام رکورد ها رو با sp انتخاب کنم.sp زیر رو برای این کار نوشتم و لی الان نمی دونم چه جوری از return استفاده کنم

ALTER Procedure ShowFiled
@id int,@tblname varchar(50)
as
begin
select * from [user] where code=@id

end


البته این کد ناقصه.و در قسمت کد نویسی هم یه کد زیر رو نوشتم که ناقص هستش.دوستان لطفا کمک کنند که چه جوری باید با sp رکورد ها رو برگشت بدم و چه جوری به دیتا سورس گرید بدم؟



SqlConnection cn = new SqlConnection(Connection);
SqlCommand cm = new SqlCommand();
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "showfiled";
DataTable dt =?????

uthman
چهارشنبه 02 مرداد 1392, 00:47 صبح
سلام.
sp رو به شکل زیر تغییر بده

ALTER Procedure ShowFiled
@id int
as
begin
select * from [user] where code=@id
Return
end

کد سی شارپ هم به صورت زیر:

SqlConnection cn = new SqlConnection();
SqlCommand cm = new SqlCommand();
cn.ConnectionString = Connection;
cm.Connection = cn;
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "showfiled";
cm.Parameters.AddWithValue("@id", id);
if (cn.State != System.Data.ConnectionState.Open)
cn.Open();
SqlDataReader dr = cm.ExecuteReader();
DataTable dt = new DataTable();
DataColumn column = new DataColumn();
column.DataType = System.Type.GetType("System.String");
column.ColumnName = "UserName";
dt.Columns.Add("UserName");
column = new DataColumn();
column.DataType = System.Type.GetType("System.String");
column.ColumnName = "Password";
dt.Columns.Add(column);
while(dr.Read())
{

DataRow dar = dt.NewRow();
dar["Username"] = dr["name"];
dar["Password"] = dr["pass"];
dt.Rows.Add(dar);

}
return dt;
}

shadi khanum
چهارشنبه 02 مرداد 1392, 08:09 صبح
به جای ????? کامندت رو Execute کن

veniz2008
چهارشنبه 02 مرداد 1392, 11:44 صبح
سلام.
در sp که نوشتید نیازی به پارامتر tblname@ نیست. همچنین زمانیکه میخواید فقط یک دستور رو اجرا کنید نیازی به begin و end نیست.(نوشتنش اشتباه نیست ولی ضرورتی هم نداره. دقیقا مثل قوانین برنامه نویسی هست)

ALTER Procedure ShowFiled
@id int
as
select * from [user] where code=@id
این کد رو ببینید :

SqlConnection cn = new SqlConnection(Connection);
SqlDataAdapter da = new SqlDataAdapter("ShowFiled", cn);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
da.SelectCommand.Parameters.AddWithValue("@id", TxtID.Text);
DataTable dt = new DataTable();
da.Fill(dt);
datagridview1.DataSource = dt;
موفق باشید.

rayanravesh
چهارشنبه 02 مرداد 1392, 19:41 عصر
سلام.دست شما درد نکنه.ممنون