PDA

View Full Version : اشتباه در نمايش خروجي!!!



ahmad1358
پنج شنبه 12 فروردین 1389, 11:44 صبح
با سلام من اين كدو تو يه تابع نوشتم كه به صورت معمولي مطمئنم جواب ميده


CREATE PROCEDURE dbo.Serialselect
@sh Nvarchar(10)=null OUT
as
SELECT TOP 1 @sh=Sh_barge FROM Serial
WHERE Mojaz = 1 ORDER BY NEWID()
GO

و اين كدم رو تو ASP.NET براي استفاده از پارامتر Sh ولي نميدونم چرا همش Null ميفرسته :



string ConnectionString = ConfigurationManager.ConnectionStrings["P_CN"].ConnectionString;
SqlConnection Connection = new SqlConnection(ConnectionString);
string CommandText = "";

SqlCommand Command;
SqlDataReader RecordSet;
CommandText = "Serialselect";
Command = new SqlCommand(CommandText, Connection);
Command.CommandType = CommandType.StoredProcedure;


SqlParameter myParameter = default(SqlParameter);
myParameter = Command.CreateParameter();
myParameter.Direction = ParameterDirection.Output;
Command.Parameters.Add("@sh", SqlDbType.NVarChar, 10);



Connection.Open();
Command.ExecuteNonQuery();
Team.Text = Command.Parameters["@sh"].Value.ToString();


حالا اگه من پارامتر خروجي رو بردارم و به صورت معمولي بخوام Sh_barge رو واكشي كنم جواب ميده ولي چون ميخوام از يه تايع آپديت ديگه بعد از دستور Select استفاده كنم مجبورم به اين صورت باشه كه من خروجي Select رو براي تابع بعدي داشته باشم.

ahmad1358
پنج شنبه 12 فروردین 1389, 17:49 عصر
يه موضوع جالب وقتي من كد آپديت رو به stored procedure بالا اضافه مي كنم تابع اپديت اجرا ميشه ولي خروجي به من نميده.
يعني به صورت داخلي فقط آپديت اجرا ميشه و يكي از رديف ها به صورت راندوم فيلد mojaz صفر ميشود ولي خروجي كه بايد @sh باشه چيزي بر نميگردونه




CREATE PROCEDURE dbo.Serialselect

@sh varchar(10)=null out

as

SELECT TOP 1 @sh=sh_barge FROM Serial
WHERE mojaz = 1 ORDER BY NEWID()

update serial set mojaz = 0 where sh_barge = @sh

GO