PDA

View Full Version : کجای دستور sql اشتباس



passerby_man
جمعه 26 آذر 1389, 14:16 عصر
ALTER PROCEDURE SMKderakht(@namederakht nvarchar(50)= null,@sal int=null)

AS
begin
select * from derakht where namederakht=coalesce (@namederakht,namederakht) and sal=coalesce(@sal,sal)
end
من میخوام بر اساس هر فیلدم جستجو کنم اگه هم هیچکدوم رو ندادم کل جدول رو نشون بده.
این دستور رو فراخونی می کنم اما جواب نمیده کجاش اشتباس؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ ؟؟؟؟؟؟

Rejnev
جمعه 26 آذر 1389, 14:35 عصر
begin
select * from derakht
where
(@namederakht is null or namederakht=coalesce (@namederakht,namederakht))
and
(@sal is null or sal=coalesce(@sal,sal))
end

passerby_man
جمعه 26 آذر 1389, 14:53 عصر
begin
select * from derakht
where
(@namederakht is null or namederakht=coalesce (@namederakht,namederakht))
and
(@sal is null or sal=coalesce(@sal,sal))
end


امتحان کردم اما نشد:افسرده:

Rejnev
جمعه 26 آذر 1389, 15:06 عصر
یک نمونه از کدی که اجرا میکنید رو بذارید. مثلا اگه بخوای سال رو بدی اما نام درخت رو ندی پروسجر رو چطوری صدا میزنی؟

passerby_man
جمعه 26 آذر 1389, 17:32 عصر
یک نمونه از کدی که اجرا میکنید رو بذارید. مثلا اگه بخوای سال رو بدی اما نام درخت رو ندی پروسجر رو چطوری صدا میزنی؟

SqlCommand command = new SqlCommand("SMKderakht", cn);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.AddWithValue("@namederakht",textBox1.Text);
command.Parameters.AddWithValue("@sal", textBox2.Text);
SqlDataAdapter da = new SqlDataAdapter(command);
DataSet d = new DataSet();
da.Fill(d);
dataGridView1.DataSource = d.Tables[0];
اینجوری فراخونی میکنم .

Rejnev
جمعه 26 آذر 1389, 17:48 عصر
SqlDataAdapter da=new SqlDataAdapter();
da.SelectCommand=new SqlCommand();
da.SelectCommand.Connection=new SqlConnection();
da.SelectCommand.CommandText="exec SMKderakht "+(string.IsNullOrEmpty(text1.Text)?"default":text1.Text)+","+(string.IsNullOrEmpty(text2.Text)?"default":text2.Text)
da.Fill(ds);//...