سلام.
در 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;
موفق باشید.