PDA

View Full Version : خطا در ذخیره اطلاعات در database



barnamenevisjavan
شنبه 15 خرداد 1395, 19:48 عصر
سلام من از کامپوننت تکس باکس زیر استفاده میکنم اما حالا هیچکدوم از مقادیر داخل دیتابیس ذخیره نمیشه و خطا میگیره
http://persianit.net/%DA%A9%D8%A7%D9%85%D9%BE%D9%88%D9%86%D9%86%D8%AA-%D8%AA%DA%A9%D8%B3%D8%AA-%D8%A8%D8%A7%DA%A9%D8%B3-textbox-%D8%A8%D8%B3%DB%8C%D8%A7%D8%B1-%D9%BE%DB%8C%D8%B4%D8%B1%D9%81%D8%AA%D9%87.html
Error converting data type varchar to numeric.
مشکل از کجاست؟
اطلاعات به این صورت ذخیره میشه

Person pr = new Person();
pr._Name =(txtpname.Text);
//pr._LName = txtplname.Text;
//pr._FName = txtpfname.Text;
////pr.__BornDate = txtpdate.Text;
//pr._CodeMelli = txtpmcode.Text;
//pr._ShenasnameCode = txtpshenas.Text;
//pr._Sodor = txtpsodor.Text;
//pr._Tahsilat = cbxptahsil.GetItemText(cbxptahsil.SelectedItem);
//pr._Job = txtpjob.Text;
//pr._GovahinameCode = txtpgovahi.Text;
//pr._Daramad =txtpdaramad.Text;
//pr._Sabege = txtpsabege.Text + cbxpsabege.GetItemText(cbxpsabege.SelectedItem);
//pr._JobAddress = txtpadressjob.Text;
//pr._Tel = txtptel.Text;
//pr._HomeAddress = txtpadresshome.Text;
////pr._RegisterDate = txtpregisterdate.SelectedDateInStringPersian;
//pr._Khedmat = _Khedmat;
//pr._Single = _Tahol;
pr.Add();

محمد آشتیانی
یک شنبه 16 خرداد 1395, 00:56 صبح
سلام
روی همه فیلدها که همچین خطایی ندارید قاعدتا ، DataType پراپرتی های کلاس Person چی هستن؟ کد کلاس Person رو اینجا بگذارید لطفا

barnamenevisjavan
یک شنبه 16 خرداد 1395, 15:31 عصر
سلام
روی همه فیلدها که همچین خطایی ندارید قاعدتا ، DataType پراپرتی های کلاس Person چی هستن؟ کد کلاس Person رو اینجا بگذارید لطفا
سلام کلی ازمون و خطا کردم تا متوجه شدم که روی فیلد درامد خطا میگیره این فیلد توی دیتابیس نوعش رو هم دسیمال گذاشتم هم نومریک توی ویژوال هم تکس باکسش رو محدود به اعداد و بصورت 3 رقم جدا میکنم (350,000,000) متوجه شدم که وقتی این فیلد بصورت 3 رقم 3رقم درمیاد نمیتونه داخل دیتابیس ثبت بکنه و خطا بگیره.مجبور شدم فعلا بصورت همون عدد صحیح ذخیرش کنم و داخل گرید فرمت بندیش کنم.
پ.ن= پیشنهاد شما برای فیلد قیمت چه نوع داده ای هستش؟

کلاس Person
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data;
using System.Data.SqlClient;
using BL;
using DL;
namespace BL
{
public class Person: DataAccessLayer
{
public int _Id;
public string _Name;
public string _LName;
public string _FName;
public string __BornDate;
public string _CodeMelli;
public string _ShenasnameCode;
public string _Sodor;
public string _Tahsilat;
public string _Job;
public string _GovahinameCode;
public string _Daramad;
public string _Sabege;
public int _Khedmat;
public int _Single;
public string _JobAddress;
public string _Tel;
public string _HomeAddress;
public string _RegisterDate;


public void Add()
{
base.Connect();
string sql = "insert into Person (Name,LName,FName,Born,Meli_Code,Shenasname_Code,S odor,Tahsilat,Job,Govahi_Code,Daramad,Sabege,Khedm at,Tahol,Address_Job,Tel,Address_Home,RegisterDate ) values (N'{0}',N'{1}',N'{2}','{3}','{4}','{5}',N'{6}',N'{ 7}',N'{8}','{9}','{10}',N'{11}','{12}','{13}',N'{1 4}','{15}',N'{16}','{17}')";
sql = string.Format(sql, _Name, _LName, _FName, __BornDate, _CodeMelli, _ShenasnameCode, _Sodor, _Tahsilat, _Job, _GovahinameCode, _Daramad, _Sabege, _Khedmat, _Single, _JobAddress, _Tel, _HomeAddress, _RegisterDate);
base.DoCommand(sql);
base.DisConnect();
}




public void Delete()
{
base.Connect();
string sql = "delete from Person where Id={0}";
sql = string.Format(sql, _Id);
base.DoCommand(sql);
base.DisConnect();
}
public void Update()
{
base.Connect();
string sql = "update Person set Name=N'{0}',LName=N'{1}',FName=N'{2}',Born='{3}',M eli_Code='{4}',Shenasname_Code='{5}',Sodor=N'{6}', Tahsilat=N'{7}',Job=N'{8}',Govahi_Code='{9}',Daram ad='{10}',Sabege=N'{11}',Khedmat='{12}',Tahol='{13 }',Address_Job='{14}',Tel='{15}',Address_Home='{16 }',RegisterDate='{17}' where Id='{18}'";
sql = string.Format(sql, _Name, _LName, _FName, __BornDate, _CodeMelli, _ShenasnameCode, _Sodor, _Tahsilat, _Job, _GovahinameCode, _Daramad, _Sabege, _Khedmat, _Single, _JobAddress, _Tel, _HomeAddress,_RegisterDate,_Id);
base.DoCommand(sql);
base.DisConnect();
}
public DataTable Select()
{
base.Connect();
string sql = "select * from Person";
DataTable dt = base.SelectData(sql);


base.DisConnect();
return dt;
}
public DataTable SelectOne()
{
base.Connect();
string sql = "select Name,LName from Person where Id={0}";
sql = string.Format(sql, _Id);
DataTable dt = base.SelectData(sql);


base.DisConnect();
return dt;
}


public DataTable SelectUser()
{
base.Connect();
string sql = "select Id,Name,LName,FName,Meli_Code from Person";
DataTable dt = base.SelectData(sql);


base.DisConnect();
return dt;
}


public DataTable SelectCount()
{
base.Connect();
string sql = "select count(Id) from Person";
DataTable dt = base.SelectData(sql);


base.DisConnect();
return dt;
}


int Personel_No;
public int Person_No()
{
try
{
SqlDataReader DR = ExecuteReader(System.Data.CommandType.Text, "Select Count(*) From Person");
if (DR.Read())
{
Personel_No = Int32.Parse(DR[0].ToString());
}
return Personel_No;
}
catch
{
return 0;
}
}
//public DataTable SelectJoin()
//{
// base.Connect();
// string sql = "select dbo.Person.Id,dbo.Person.Name,dbo.Person.LName,dbo .Person.FName,dbo.Cars.Car from dbo.Person inner join dbo.Cars on dbo.Person.Id=dbo.Cars.PersonId";
// sql = string.Format(sql, _Id);
// DataTable dt = base.SelectData(sql);


// base.DisConnect();
// return dt;
//}
}
}

sgn2006
دوشنبه 17 خرداد 1395, 07:47 صبح
سلام

همون دسیمال بزار باشه فقط قبل از ذخیره در دیتابیس دستور txt.Text.Replace(",", "")

موفق باشید