PDA

View Full Version : سوال: در هنگام INSERT در جدول SQL ارور Input string was not in a correct format میاد



zayens
شنبه 08 خرداد 1389, 18:06 عصر
در هنگام INSERT در جدول SQL ارور Input string was not in a correct format میاد
و کد زیر به رنگ زرد در میاد

cstmer = new CUSTOMER();
cstmer.CustomerInsert(Convert.ToInt32(txtcustomerN um.Text.Trim()),
txtname.Text.Trim(),txtfamily.Text.Trim(), txtphone.Text.Trim(),
txtAddress.Text.Trim(),Convert.ToDecimal(txtTotalC ost.Text.Trim()));

این هم از کلاس CUSTOMER

public void CustomerInsert(int CUSTOMERNUM, string CUSTOMERNAME,
string CUSTOMERFAMILY,string CUSTOMERPHONE,string CUSTOMERADDRESS,decimal CUSTOMERCOST)
{
cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "CustomerInsert";
cmd.Parameters.AddWithValue("@CUSTOMERNUM", CUSTOMERNUM);
cmd.Parameters.AddWithValue("@CUSTOMERNAME", CUSTOMERNAME);
cmd.Parameters.AddWithValue("@CUSTOMERFAMILY", CUSTOMERFAMILY);
cmd.Parameters.AddWithValue("@CUSTOMERPHONE", CUSTOMERPHONE);
cmd.Parameters.AddWithValue("@CUSTOMERADDRESS", CUSTOMERADDRESS);
cmd.Parameters.AddWithValue("@CUSTOMERCOST", CUSTOMERCOST);
DbRun = new MyDbRun();
DbRun.Execommand(cmd);
.
.
و این هم استورپرسیجر


create proc CustomerInsert
@CUSTOMERNUM int,
@CUSTOMERNAME nvarchar(20),
@CUSTOMERFAMILY nvarchar(40),
@CUSTOMERPHONE nvarchar(20),
@CUSTOMERADDRESS nvarchar(500),
@CUSTOMERCOST decimal(9, 0)
as
insert into RESTAURANT.dbo.CUSTOMER(CUSTOMERNUM,CUSTOMERNAME,
CUSTOMERFAMILY,CUSTOMERPHONE,CUSTOMERADDRESS,CUSTO MERCOST)
values (@CUSTOMERNUM,@CUSTOMERNAME,
@CUSTOMERFAMILY,@CUSTOMERPHONE,@CUSTOMERADDRESS,@C USTOMERCOST)
go

مشکلش چیه؟

M.YasPro
شنبه 08 خرداد 1389, 18:35 عصر
سلام
پارامتر های ورودی به این تابع


Convert.ToInt32(txtcustomerNum.Text.Trim()

یا این تابع


Convert.ToDecimal(txtTotalCost.Text.Trim()

به کار رفته .
یعنی مثلا باید 123 بوده باشه ، شده :ل12


برای جلوگیری از این مشکل یا کاربر رو محدود کنید به عدد وارد کردن یا قبلا از فرستادن پارامتر به تابع فوق با شرط مقدار اون رو چک کنید .
موفق باشید .