kohyar
سه شنبه 16 شهریور 1389, 16:19 عصر
سلام دوستان
من يك sp نوشتم كه براي insert كردن اطلاعات در جدول ازش استفاده مي كنم
توي همين sp يك پارامتر از نوع Output گذاشتم كه مي خوام تعداد ركوردهاي فعلي جدول رو نشون بدم
CREATE Procedure sp_tel_Insert
@name nvarchar(50),
@family nvarchar(50),
@sense bit,
@pic varchar(50),
@telnum bigint,
@regday varchar(10),
@reccount int output
As
Begin
Insert Into tel
([name],[family],[sense],[pic],[telnum],[regday])
Values
(@name,@family,@sense,@pic,@telnum,@regday)
set @reccount= (select count([ID]) from tel)
End
GO
حالا مي خوام تو برنامه asp.net تحت سي شارپ بعد از اجراي اين sp مقدار پارامتر خروجي رو بگيرم و به كاربر نشون بدم ولي هميشه صفر رو نشون ميده
توي محيط QueryAnalyzer تست كردن بعد از insert كردن پارامتر خروجي نتيجه درست ميده
كدي كه نوشتم اينه
SqlConnection cnn = new SqlConnection();
cnn.ConnectionString = System.Configuration.ConfigurationManager.AppSetti ngs["connectionstring"].ToString();
SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
cmd.CommandText = "sp_tel_Insert";
cmd.Parameters.Add("@name", SqlDbType.NVarChar, 50);
cmd.Parameters[0].Value = TextBox1.Text;
cmd.Parameters.Add("@family", SqlDbType.NVarChar, 50);
cmd.Parameters[1].Value = TextBox2.Text;
cmd.Parameters.Add("@sense", SqlDbType.Bit);
cmd.Parameters[2].Value = CheckBox1.Checked;
cmd.Parameters.Add("@pic", SqlDbType.VarChar, 50);
cmd.Parameters[3].Value = TextBox4.Text;
cmd.Parameters.Add("@telnum", SqlDbType.BigInt);
cmd.Parameters[4].Value = Convert.ToInt64(TextBox5.Text);
cmd.Parameters.Add("@regday", SqlDbType.VarChar, 10);
cmd.Parameters[5].Value = TextBox6.Text;
SqlParameter recordcount = new SqlParameter("reccount", SqlDbType.Int);
recordcount.Direction = ParameterDirection.Output;
cmd.Parameters.Add(recordcount);
cmd.CommandType = CommandType.StoredProcedure;
cnn.Open();
cmd.ExecuteReader();
Label2.Text = recordcount.Value.ToString();
cnn.Close();
ممنون
من يك sp نوشتم كه براي insert كردن اطلاعات در جدول ازش استفاده مي كنم
توي همين sp يك پارامتر از نوع Output گذاشتم كه مي خوام تعداد ركوردهاي فعلي جدول رو نشون بدم
CREATE Procedure sp_tel_Insert
@name nvarchar(50),
@family nvarchar(50),
@sense bit,
@pic varchar(50),
@telnum bigint,
@regday varchar(10),
@reccount int output
As
Begin
Insert Into tel
([name],[family],[sense],[pic],[telnum],[regday])
Values
(@name,@family,@sense,@pic,@telnum,@regday)
set @reccount= (select count([ID]) from tel)
End
GO
حالا مي خوام تو برنامه asp.net تحت سي شارپ بعد از اجراي اين sp مقدار پارامتر خروجي رو بگيرم و به كاربر نشون بدم ولي هميشه صفر رو نشون ميده
توي محيط QueryAnalyzer تست كردن بعد از insert كردن پارامتر خروجي نتيجه درست ميده
كدي كه نوشتم اينه
SqlConnection cnn = new SqlConnection();
cnn.ConnectionString = System.Configuration.ConfigurationManager.AppSetti ngs["connectionstring"].ToString();
SqlCommand cmd = new SqlCommand();
cmd.Connection = cnn;
cmd.CommandText = "sp_tel_Insert";
cmd.Parameters.Add("@name", SqlDbType.NVarChar, 50);
cmd.Parameters[0].Value = TextBox1.Text;
cmd.Parameters.Add("@family", SqlDbType.NVarChar, 50);
cmd.Parameters[1].Value = TextBox2.Text;
cmd.Parameters.Add("@sense", SqlDbType.Bit);
cmd.Parameters[2].Value = CheckBox1.Checked;
cmd.Parameters.Add("@pic", SqlDbType.VarChar, 50);
cmd.Parameters[3].Value = TextBox4.Text;
cmd.Parameters.Add("@telnum", SqlDbType.BigInt);
cmd.Parameters[4].Value = Convert.ToInt64(TextBox5.Text);
cmd.Parameters.Add("@regday", SqlDbType.VarChar, 10);
cmd.Parameters[5].Value = TextBox6.Text;
SqlParameter recordcount = new SqlParameter("reccount", SqlDbType.Int);
recordcount.Direction = ParameterDirection.Output;
cmd.Parameters.Add(recordcount);
cmd.CommandType = CommandType.StoredProcedure;
cnn.Open();
cmd.ExecuteReader();
Label2.Text = recordcount.Value.ToString();
cnn.Close();
ممنون