C#学习教程:错误:将nvarchar数据类型转换为smalldatetime数据类型导致值超出范围下面插入查询SqlDataSourceuserQuizDataSource=newSqlDataSource();userQuizDataSource.ConnectionString="DataSource=localhost\SQLEXPRESS;InitialCatalog=quizApp;IntegratedSecurity=True";userQuizDataSource.InsertCommand="INSERTINTO[UserQuiz]([DateTimeComplete],[Score],[UserName])VALUES(@DateTimeComplete,@Score,@UserName)";userQuizDataSource.InsertParameters.Add("DateTimeComplete",DateTime.Now.ToString());userQuizDataSource.InsertParameters.Add("分数",score.ToString());userQuizDataSource.InsertParameters.Add("用户名",User.Identity.Name);introwsAffected=userQuizDataSource.Insert();但是不断收到以下错误:将nvarchar数据类型转换为smalldatetime数据类型会导致值超出范围。该语句已终止。谁能帮我?你的声明DateTime.Now.ToString()返回什么?您的SQLServer需要什么语言和区域设置?你有不匹配吗?也许您的.NET返回格式MM/dd/yyyy而SQLServer期望dd/MM/yyyy(反之亦然)。在SQLServer中尝试此代码:DECLARE@testTABLE(smalldateSMALLDATETIME)INSERTINTO@testVALUES('02/21/201022:00:32')--SELECT*FROM@testwith.NET'sDateTime.Now。ToString()替换了我的字符串-这行得通吗?SQLServer是否为您提供了更好的错误消息?接下来,尝试使用ISO-8601格式(YYYYMMDD)的日期-这适用于SQLServer中的所有区域和语言设置-这有效吗?DECLARE@testTABLE(smalldateSMALLDATETIME)INSERTINTO@testVALUES('2010022122:00:32')--SELECT*FROM@test我有同样的问题添加datetime.now到我的SQL服务器列'日期'集是数据类型SmallDateTime。解决它很简单(经过多次尝试!!)stringcurrentdatetime=DateTime.Now.Year+"."+DateTime.Now.Month+"."+DateTime.Now.Day+""+DateTime.Now.Hour+(":")+DateTime.Now.Minute+(":")+DateTime.Now.Second这将以服务器期望的格式返回日期尝试更改这个:userQuizDataSource.InsertParameters.Add("DateTimeComplete",DateTime.Now.ToString());为此:userQuizDataSource.InsertParameters.Add("@startdate",SqlDbType.DateTime,DateTime.Now.ToString());不要尝试将日期转换为字符串:userQuizDataSource.InsertParameters.Add("DateTimeComplete",DateTime.Now);编辑:然后尝试:userQuizDataSource.InsertParameters.Add("DateTimeComplete",TypeCode.DateTime,DateTime.Now.ToString());还有另一种传递实际对象的方法,但我不记得确切的我......抱歉。在Windows8中,如果您在控制面板->区域中更改格式后仍然遇到此问题,您仍然需要将这些设置传输给您的用户。在同一窗口中,转到“管理”选项卡,单击“复制设置”。选中相应的复选框并单击确定。以上是C#学习教程:Error:Convertingnvarchardatatypetosmalldatetimedatatypewillresultinout-of-rangevalue。分享的全部内容,如果对大家有用,需要进一步了解C#学习教程,还望大家多多关注——本文整理自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
