سلام.

متن کد و متن Stored Proc را نوشتم ام . خطایی که میگیره میگه : Invalid Cast Operation ....

CREATE PROCEDURE LoginProc
(@uId NVARCHAR(20), @uPass NVARCHAR(20), @uName NVARCHAR(20) OUTPUT)
AS
SET @uName =( SELECT @uName FROM TblUsers WHERE
(TblUsers.userId = @uId AND TblUsers.userpassword = @uPass))
GO


SqlCommand cmd= new SqlCommand();
cmd.Connection = con;
cmd.CommandText="LoginProc";
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@uId",SqlDbType.NVarChar,20,"u serId");
cmd.Parameters.Add("@uPass",SqlDbType.NVarChar,20, "userPassword");
cmd.Parameters.Add("@uName",SqlDbType.NVarChar,20, "userName");

cmd.Parameters["@uId"].Value= textBox1.Text;
cmd.Parameters["@uPass"].Value= textBox2.Text;
cmd.Parameters["@uName"].Direction = ParameterDirection.Output;
cmd.Parameters["@uName"].Value = "";

con.Open();
SqlDataReader reader= cmd.ExecuteReader();
bool b = reader.Read();

string name = (string) cmd.Parameters["@uName"].Value;
MessageBox.Show(name);