将数据类型varchar转换为datetime时出错 [英] Error converting datatype varchar to datetime
本文介绍了将数据类型varchar转换为datetime时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
你好,在我的项目中遇到错误:
将数据类型varchar转换为datetime时出错
在我的表中,在逻辑中和SP中,DOB和DOA被声明为datetime。
而不是放dob.text,我试过,dob.ToString(),它也不起作用。我也试过pd.doa = datetime.parse ......它也出错了。
如何解决这个错误。
这是我的代码
hello in my project am getting an error that:
Error converting datatype varchar to datetime"
in my table, in logic and in SP the DOB and DOA are declared as datetime.
instead of putting dob.text , i have tried,dob.ToString(),it is also not working. and also i have tried pd.doa=datetime.parse...it is also getting error.
How to solve this error.
Here is my code
pd.FName = txtFname.Text;
pd.MName = txtMName.Text;
pd.LName = txtLName.Text;
pd.DOB = Convert.ToDateTime(dtpdob.Text);
int year1 = dtpdob.Value.Year;
int year2 = DateTime.Now.Year;
if ((year1 == year2) | (year2 < year1))
{
CommonFunctions.Error("Please Enter a valid Date of Birth!!!");
dtpdob.Focus();
return;
}
int NewAge = year2 - year1;
pd.SID = Convert.ToInt16(txtsid.Text);
pd.Sex = cmbSex.SelectedItem.ToString();
lblage.Text = NewAge.ToString();
pd.Age = NewAge;
pd.Address = txtAddress1.Text;
pd.SPName = cmbSponser.SelectedItem.ToString();
pd.FathName = txtFathName.Text;
pd.MothName = txtMothName.Text;
pd.MothOccu = txtMothoccu.Text;
pd.FathOccu = txtfathOccu.Text;
pd.Fam1 = txtFam1.Text;
pd.Fam2 = txtFam2.Text;
pd.Fam3 = txtFam3.Text;
pd.Fam4 = txtFam4.Text;
pd.Fam5 = txtFam5.Text;
pd.Fam6 = txtFam6.Text;
pd.Fam7 = txtFam7.Text;
pd.Fam8 = txtFam8.Text;
pd.FamCond = txtcond.Text;
pd.FamNotes = txtnotes.Text;
pd.Status = txtstatus.Text;
pd.DOA = Convert.ToDateTime(doa.Text);
pd.EntryDate = Convert.ToDateTime(DateTime.Now.ToString());
public static bool Update(PersonelData person)
{
const string UpdateDetails = "exec[UPDATE_BULK_INFO]@sid,@FName,@MName,@LName,@DOB,@sex,@age,@address,@SponserName,@DOA,@FathName,@FathOccu,@MothName,@MothOccu,@Fam1,@Fam2,@Fam3,@Fam4,@Fam5,@Fam6,@Fam7,@Fam8,@FamCond,@FamNotes,@Status";
DAL.Method method = new DAL.SqlDataBase();
method.SelectQuery(UpdateDetails);
method.AddParameter("@sid", person.SID);
method.AddParameter("@FName", person.FName);
method.AddParameter("@MName", person.MName);
method.AddParameter("@LName", person.LName);
method.AddParameter("@DOB", person.DOB);
method.AddParameter("@sex", person.Sex);
method.AddParameter("@age", person.Age);
method.AddParameter("@address", person.Address);
method.AddParameter("@SponserName", person.SPName);
method.AddParameter("@DOA", person.DOA);
method.AddParameter("@FathName", person.FathName);
method.AddParameter("@FathOccu", person.FathOccu);
method.AddParameter("@MothName", person.MothName);
method.AddParameter("@MothOccu", person.MothOccu);
method.AddParameter("@Fam1", person.Fam1);
method.AddParameter("@Fam2", person.Fam2);
method.AddParameter("@Fam3", person.Fam3);
method.AddParameter("@Fam4", person.Fam4);
method.AddParameter("@Fam5", person.Fam5);
method.AddParameter("@Fam6", person.Fam6);
method.AddParameter("@Fam7", person.Fam7);
method.AddParameter("@Fam8", person.Fam8);
method.AddParameter("@FamCond", person.FamCond);
method.AddParameter("@FamNotes", person.FamNotes);
method.AddParameter("@Status", person.Status);
//method.AddParameter("@EntryDate", person.EntryDate);
int ins = method.ExecuteQuery();
if (ins > 0)
{
return true;
}
return false;
}
推荐答案
这个问题反映了当今初学者最大的谬误之一:使用字符串代表的趋势数据而不是数据本身。如果您有一些与日期/时间相关的数据,请不要使用varchar
;使用某些数据类型,如date
,datetime
等:
http://technet.microsoft.com/en-us/library/ms187594%28v= sql.90%29.aspx [ ^ ],
http://technet.microsoft.com/en-us/library/ms180878%28v=sql.90%29.aspx [ ^ ]。
-SA
This question reflects one of the biggest fallacies of the beginners these days: a trend to work with strings representing data instead of data itself. If you have some data related to date/time, never usevarchar
; use some data type likedate
,datetime
, etc.:
http://technet.microsoft.com/en-us/library/ms187594%28v=sql.90%29.aspx[^],
http://technet.microsoft.com/en-us/library/ms180878%28v=sql.90%29.aspx[^].
—SA
这篇关于将数据类型varchar转换为datetime时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文