reuonis
یک شنبه 26 دی 1389, 15:19 عصر
سلام
من یک Stored Procedure برای اضافه کردن کاربران به سایت ایجاد کرده ام ، من این پروسیجر رو در برنامه تست کردم مشکلی نداشت.
اما وقتی می خواستم تعدادی کاربر رو از فایل اکسل بخونم و این Stored Procedure رو اجرا کنم خطای زیر رو به من میده
Implicit conversion from data type nchar to binary is not allowed. Use the CONVERT function to run this query.
من تمام پارامترهام رو با همون فرمتی که توی دیتابیس بود به پروسیجر می فرستم.
این هم تابع اضافه کردن کاربر :
protected void addPerson(string PID, string pass, string fname, string lname, char sex, DateTime date)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrin gs["ConnectionString"].ConnectionString);
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandText = "EXECUTE AddPerson @result,@PID,@FName,@LName,@Sex,@roll,@Pass,@BID,@ MDate";
cmd.Parameters.Add("@result", SqlDbType.Int);
cmd.Parameters["@result"].Direction = ParameterDirection.Output;
SqlParameter puser = new SqlParameter("@PID", SqlDbType.NVarChar, 10);
puser.Value = PID;
cmd.Parameters.Add(puser);
SqlParameter ppass = new SqlParameter("@pass", SqlDbType.Binary, 16);
ppass.Value = computeMD5Hash(pass);
cmd.Parameters.Add(ppass);
DateTime t = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second);
cmd.Parameters.Add("@MDate", SqlDbType.DateTime).Value = date;
cmd.Parameters.Add("@roll", SqlDbType.Int).Value = 4;
cmd.Parameters.Add("@BID", SqlDbType.NChar,3).Value = Session["BID"].ToString();
cmd.Parameters.Add("@fname", SqlDbType.NVarChar,15).Value = fname;
cmd.Parameters.Add("@lname", SqlDbType.NVarChar, 15).Value = lname;
//cmd.Parameters.AddWithValue("@email", tb_mail.Text);
cmd.Parameters.Add("@sex", SqlDbType.NChar, 1).Value = sex;
cmd.ExecuteNonQuery();
con.Close();
}
من یک Stored Procedure برای اضافه کردن کاربران به سایت ایجاد کرده ام ، من این پروسیجر رو در برنامه تست کردم مشکلی نداشت.
اما وقتی می خواستم تعدادی کاربر رو از فایل اکسل بخونم و این Stored Procedure رو اجرا کنم خطای زیر رو به من میده
Implicit conversion from data type nchar to binary is not allowed. Use the CONVERT function to run this query.
من تمام پارامترهام رو با همون فرمتی که توی دیتابیس بود به پروسیجر می فرستم.
این هم تابع اضافه کردن کاربر :
protected void addPerson(string PID, string pass, string fname, string lname, char sex, DateTime date)
{
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrin gs["ConnectionString"].ConnectionString);
con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandText = "EXECUTE AddPerson @result,@PID,@FName,@LName,@Sex,@roll,@Pass,@BID,@ MDate";
cmd.Parameters.Add("@result", SqlDbType.Int);
cmd.Parameters["@result"].Direction = ParameterDirection.Output;
SqlParameter puser = new SqlParameter("@PID", SqlDbType.NVarChar, 10);
puser.Value = PID;
cmd.Parameters.Add(puser);
SqlParameter ppass = new SqlParameter("@pass", SqlDbType.Binary, 16);
ppass.Value = computeMD5Hash(pass);
cmd.Parameters.Add(ppass);
DateTime t = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, DateTime.Now.Hour, DateTime.Now.Minute, DateTime.Now.Second);
cmd.Parameters.Add("@MDate", SqlDbType.DateTime).Value = date;
cmd.Parameters.Add("@roll", SqlDbType.Int).Value = 4;
cmd.Parameters.Add("@BID", SqlDbType.NChar,3).Value = Session["BID"].ToString();
cmd.Parameters.Add("@fname", SqlDbType.NVarChar,15).Value = fname;
cmd.Parameters.Add("@lname", SqlDbType.NVarChar, 15).Value = lname;
//cmd.Parameters.AddWithValue("@email", tb_mail.Text);
cmd.Parameters.Add("@sex", SqlDbType.NChar, 1).Value = sex;
cmd.ExecuteNonQuery();
con.Close();
}