PDA

View Full Version : سوال: مشکل ارسال پارامتر فارسی



hercool
پنج شنبه 21 شهریور 1392, 18:33 عصر
سلام یه سوال من رشته های دارم که میریزمشون داخل جدولم نوع جدول رو nvarchar(150) در نظر گرفتم که داخلش چند کلمه فارسی ذخیزه میشه اما مشکل اینجاست که تنها حرف اول وارد جدول میشه نمی دونم چرا



command.Parameters.Add(new SqlParameter("@name",Convert.ToString( name[nu])));

sajadsobh
پنج شنبه 21 شهریور 1392, 18:49 عصر
از این کد استفاده کن ببین نتیجه میده یا نه؟!

cmd.Parameters.AddWithValue("@name", Value.ToString());

hercool
پنج شنبه 21 شهریور 1392, 19:12 عصر
نه اینم جواب نداد

sajadsobh
پنج شنبه 21 شهریور 1392, 19:19 عصر
کوئری مشکل نداره؟! آخه معمولاً نباید همچین چیزی پیش بیاد :ناراحت:

danialafshari
پنج شنبه 21 شهریور 1392, 19:31 عصر
سلام
بهتره کد کامل اضافه کردنتون رو بزارید

hercool
پنج شنبه 21 شهریور 1392, 19:35 عصر
این کد سی شاراپ هست


private void savedetail()
{
SqlDataAdapter adapter = new SqlDataAdapter();
SqlCommand command = new SqlCommand("saves");
command.Connection = con;
command.Connection.Open();
command.CommandType = CommandType.StoredProcedure;
adapter.SelectCommand = command;
for (int nu = 0; nu < name.Length; nu++)
{
command.Parameters.Clear();
command.Parameters.Add(new SqlParameter("@codeday", codeday));
command.Parameters.AddWithValue("@name", name[nu].ToString());

command.Parameters.Add(new SqlParameter("@tedad", nusa[nu]));


command.ExecuteNonQuery();
} command.Connection.Close();

}

R_khaleghi
پنج شنبه 21 شهریور 1392, 20:46 عصر
این کد سی شاراپ هست


private void savedetail()
{
SqlDataAdapter adapter = new SqlDataAdapter();
SqlCommand command = new SqlCommand("saves");
command.Connection = con;
command.Connection.Open();
command.CommandType = CommandType.StoredProcedure;
adapter.SelectCommand = command;
for (int nu = 0; nu < name.Length; nu++)
{
command.Parameters.Clear();
command.Parameters.Add(new SqlParameter("@codeday", codeday));
command.Parameters.AddWithValue("@name", name[nu].ToString());

command.Parameters.Add(new SqlParameter("@tedad", nusa[nu]));


command.ExecuteNonQuery();
} command.Connection.Close();

}

سلام.
چرا به جای اینکه نوشته داخل تکس باکس را مستقیم ذخیره کنین گذاشتین داخل حلقه؟

hercool
پنج شنبه 21 شهریور 1392, 20:50 عصر
بخاطر اینکه من مقادیر رو از یک الگو گرفتم و ریختم در یک ارایه و هر اندیس ارایه یک رکورد محسوب میشه

mahan.2002
پنج شنبه 21 شهریور 1392, 22:25 عصر
با سلام
من فکر میکنیم اندیس های شما دو بعدی هستند .. وشما یک بعد اون رو دارید آدرس میدید بخاطر همینه که حرف اول اونا رو دخیره میکنه ..

hercool
پنج شنبه 21 شهریور 1392, 22:31 عصر
نه یک بعدی هست
سعی کردم از N استفاده کنم و یا % اما نشد ممنون میشم دوستان راهنمایی کنن در SP های دارای پارامتر همراه @ چطور باید N رو اضافه کرد تا این مشکل بر طرف بشه
چون چند جا این مشکل رو حل کرده بودند اما ننوشته بودن چطوری انجامش دادن

mahan.2002
پنج شنبه 21 شهریور 1392, 23:09 عصر
من فکر میکنم وقتی شما آرایه رشته ای در نظر میگیرد ذاتا در زبان سی و سی شارپ دو بعد طراحی میشه ... یکی برای تک تک حروف و دیگری برای آرایه ..
شما صورت دوبعدی آدرس دهی کنید ببنید جواب میگیرید مثلا به صورت پیش فرض [10],[name[nu ببنید تو اطلاعات ذخیره شدتون تغییر ایجاد میشه..

Reza_Yarahmadi
شنبه 23 شهریور 1392, 12:37 عصر
احتمالا نوع داده ای که توی SP برای هر پارامتر تعیین کردید فاقد اندازه است.
@Param1 nvarchar,
@Param2 varchar,
...
برای رفعش کافیه حداکثر طول مجاز پارامترها رو معین کنید
@Param1 nvarchar(250),
@Param2 varchar(500),
...

hamzehsh
چهارشنبه 27 شهریور 1392, 17:06 عصر
كد پروسيجرت رو بگذار ببينم.
به نظرم مشكل C# نداره.
مشابه اين كد رو نوشتم