PDA

View Full Version : خطای Input string was not in a correct format



LEADER.OF.HELL
جمعه 09 آبان 1393, 04:36 صبح
با سلام
من این خطای Input string was not in a correct format رو هر کاری میکنم نمیتونم رفع کنم
برنامه به وسیله LINQ نوشته شده
این دستورات موجود در Procedure

ALTER PROCEDURE upd_tbl_customer
@customer_code int,
@customer_name nvarchar(50),
@customer_tell nvarchar(50),
@customer_address nvarchar(50),
@customer_debt nvarchar(50),
@customer_cm nvarchar(250)

AS
BEGIN

SET NOCOUNT ON;

-- Insert statements for procedure here
UPDATE dbo.customer set
customer_name=@customer_name,
customer_tell=@customer_tell,
customer_address=@customer_address,
customer_debt=@customer_debt,
customer_cm=@customer_cm WHERE customer_code=@customer_code
END


و اینها هم دستورات فرم هستن


var db = new DataClasses1DataContext();
db.upd_tbl_customer(Convert.ToInt32(txt_code.Text) , txt_name.Text, txt_tell.Text, txt_address.Text, txt_debt.Text, txt_cm.Text);
MessageBox.Show("ویرایش انجام شد");
this.Close();


خطا رو بر روی txt_tell.Text میده و هرکاری کردم رفع نشد

استاتید لطفا راهنمایی کنن
با تشکر

مهرداد صفا
جمعه 09 آبان 1393, 07:47 صبح
با سلام.
به احتمال قوی خطا در زمان ConvertToInt32 اتفاق می افته. به این صورت امتحان کنید تا مطمئن بشید:


int code=Convert.ToInt32(txt_code.Text);
db.upd_tbl_customer(code , txt_name.Text, txt_tell.Text, txt_address.Text, txt_debt.Text, txt_cm.Text);

و مطمئن بشید که داخل TextBox مربوطه علایم و یا حروف غیر عددی وارد نشده باشه.

LEADER.OF.HELL
جمعه 09 آبان 1393, 11:20 صبح
با سلام.
به احتمال قوی خطا در زمان ConvertToInt32 اتفاق می افته. به این صورت امتحان کنید تا مطمئن بشید:


int code=Convert.ToInt32(txt_code.Text);
db.upd_tbl_customer(code , txt_name.Text, txt_tell.Text, txt_address.Text, txt_debt.Text, txt_cm.Text);

و مطمئن بشید که داخل TextBox مربوطه علایم و یا حروف غیر عددی وارد نشده باشه.

باز هم حل نشد و به این دستور باز همون خطا رو میده
int code = Convert.ToInt32(txt_code.Text);

این txt_code و مابقی textboxها مقدارشون از فرم قبلی، از داخل Gridview میاد و ریخته میشه داخل این textbox ها
خاصیت enable این textboxها هم disable هست و نمیشه مقدار داخلشون رو تغییر داد
این textbox هم مقدار شماره مشتری رو داخل دیتابیس توی خودش داره و به صورت اتوماتیک بعد از ساخت شدن کاربر بهش یک عدد میده(با قابلیت entity در sql)
و این فیلد کلید اصلی هستش و مقدارش هم not null تعریف شده و int

pedram.11
جمعه 09 آبان 1393, 11:25 صبح
احتمالا عدد شما خارج از محدوده عدد 32 بیتی هست. چه عددی قرار میدید؟
long رو تست کنید:
long code = long.Parse(txt_code.Text)

LEADER.OF.HELL
جمعه 09 آبان 1393, 12:07 عصر
احتمالا عدد شما خارج از محدوده عدد 32 بیتی هست. چه عددی قرار میدید؟
long رو تست کنید:
long code = long.Parse(txt_code.Text)

یک عدد 1 رقمی هستش که از فیلد کلید دیتابیس میاد و چیز زیادی نیست که نتونه تبدیل کنه

pedram.11
جمعه 09 آبان 1393, 13:44 عصر
هرچی هست مشکل از تکستباکسه. break point بذارید مطمئن شید که تکست غیر از عدد نباشه...

LEADER.OF.HELL
جمعه 09 آبان 1393, 18:53 عصر
مشکل حل شد
مقدار کد رو به فرم بعدی ارسال نکرده بودم و تکست باکسش خالی بود
با تشکر