PDA

View Full Version : سوال: اشکال در دستورcmd.Parameters...



Bahar_HS
دوشنبه 30 فروردین 1389, 09:54 صبح
با سلام
دستورات ارسال شده به SQL از طرف برنامه رو به صورت SP نوشتم،این طوری:


try
{
Connect();
cmd = new SqlCommand("Insert_1",con);
sda.InsertCommand = cmd;
sda.InsertCommand.CommandType = CommandType.StoredProcedure;
Parameters();
cmd.ExecuteNonQuery();
}

ومتدپارامترهاروجداگانه نوشتم:


arr.Add(cmbbirth_day.Text.Trim());
.
.
cmd.Parameters.Add("@birth_day", SqlDbType.TinyInt).Value = int.Parse(arr[7].ToString());

موقع اجرا(Debug)این Error رو میده:


System.FormatException: Input string was not in a correct format.
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at System.Int32.Parse(String s)
at project_1.Form1.Parameters() in C:\Program Files\Projects\project_1\project_1\Form1.cs:line 431

مشکلش چیه؟

Rejnev
دوشنبه 30 فروردین 1389, 10:01 صبح
سلام.این رو امتحان کنید



cmd.Parameters.AddWithValue("@birth_day",int.Parse(arr[7].ToString());


دقت کنید که در sp پارامتر @birthDay حتما از نوع int یا tiny int باشه. سر ریز رخ نده. و مقدار این آرایه ای که میفرستین null نباشه. در نهایت فکر میکنم هنگام تبدیل نوع خطا میگیره. یعنی از string به int. که باید رشتتون حتما فقط شامل عدد باشه و ممیز و ... نداشته باشه

M.YasPro
دوشنبه 30 فروردین 1389, 10:03 صبح
سلام
شما به یه تابع مثل int.Parse رشته غیر قابل قبول فرستادی مثلا :


int.Parse("12abc");

موفق باشید .