gpt4 book ai didi

c# - SQL Server 中的日期时间问题

转载 作者:太空狗 更新时间:2023-10-29 22:05:38 24 4
gpt4 key购买 nike

我正在尝试将 INSERT 插入到 MS SQL Server 中已设置的数据库中,数据库服务器位于共享主机 (godaddy) 中。

我想要实现的是将一篇文章存储到数据库中,但每次我发布或预览该文章时,服务器都会向我抛出

SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlTypes.SqlTypeException: SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:


[SqlTypeException: SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.]
System.Data.SqlClient.TdsParser.TdsExecuteRPC(_SqlRPC[] rpcArray, Int32 timeout, Boolean inSchema, SqlNotificationRequest notificationRequest, TdsParserStateObject stateObj, Boolean isCommandProc, Boolean sync, TaskCompletionSource`1 completion, Int32 startRpc, Int32 startParam) +5635
System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async, Int32 timeout, Task& task, Boolean asyncWrite) +1379
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, TaskCompletionSource`1 completion, Int32 timeout, Task& task, Boolean asyncWrite) +175
System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) +53
System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior behavior, String method) +134
System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior) +41
System.Data.Common.DbCommand.ExecuteReader() +12
System.Data.Linq.SqlClient.SqlProvider.Execute(Expression query, QueryInfo queryInfo, IObjectReaderFactory factory, Object[] parentArgs, Object[] userArgs, ICompiledSubQuery[] subQueries, Object lastResult) +1306
System.Data.Linq.SqlClient.SqlProvider.ExecuteAll(Expression query, QueryInfo[] queryInfos, IObjectReaderFactory factory, Object[] userArguments, ICompiledSubQuery[] subQueries) +118
System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query) +342
System.Data.Linq.StandardChangeDirector.DynamicInsert(TrackedObject item) +145
System.Data.Linq.StandardChangeDirector.Insert(TrackedObject item) +215
System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode failureMode) +378
System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode) +372
System.Data.Linq.DataContext.SubmitChanges() +23
sgc.Servicio.CrearServicio.InsertDB(Object sender, EventArgs e) in CrearArticulo.aspx.cs:114
System.EventHandler.Invoke(Object sender, EventArgs e) +0
System.Web.UI.WebControls.Button.OnClick(EventArgs e) +9553178
System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +103
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +9642898
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1724

我在共享主机中有一个 Datetime 类型的字段,它应该包含文章的日期,顺便说一句,它不会在其他文章表上抛出这个错误。就这一个,可能是打字错误还是什么?

这是我的代码(抛出错误的代码):

public partial class CrearServicio : System.Web.UI.Page
{
string tpCont = "1";
int estatus = 1;
bool withResponse = true;

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
TextBox1.Attributes.Add("onKeyDown", "textCounter(this, 'counter1', 500)");
TextBox1.Attributes.Add("onKeyUp", "textCounter(this, 'counter1', 500)");

datetime.Text = DateTime.Now.ToString("yyyyMMddHHmmss");

if (Request.QueryString["tpCont"] != null)
{
tpCont = Request.QueryString["tpCont"];
volver.HRef = "elegir.aspx?tpCont=" + tpCont;
volver1.HRef = "elegir.aspx?tpCont=" + tpCont;
}

ConexionServiciosDataContext db = new ConexionServiciosDataContext();

tpContinpt.Text = tpCont;

int role = kernel.getUserRole(User.Identity.Name);

int tipoUsuario = role;

if (tipoUsuario == 1 || tipoUsuario == 2)
{
mainButton.Visible = true;
saveButton.Visible = true;
displayButton.Visible = true;
}
}
}

protected void SaveDBAndDisplay(object sender, EventArgs e)
{
withResponse = false;

SaveDB(sender, e);
}

protected void SaveDB(object sender, EventArgs e)
{
estatus = 2;

InsertDB(sender, e);
}

protected void InsertDB(object sender, EventArgs e)
{
tpCont = tpContinpt.Text;

if (TextArea1.Text.Length > 0)
{
ConexionServiciosDataContext db = new ConexionServiciosDataContext();

Servicios columna = new Servicios();
columna.Título = TextBox1.Text.ToString();
string line = TransformarString(TextArea1.Text.ToString());
columna.Contenido = line.ToString();

string[] IDsTitlesLocations = { };

db.Servicios.InsertOnSubmit(columna);
db.SubmitChanges();
}
}
}

对不起,如果我写得太多,但我只是停留在这个问题上,也许我应该在服务器上设置日期时间格式?

任何人都可以阐明这一点吗?

最佳答案

我假设 ServiciosDateTime未设置的属性。

DateTime s 不可为空,当它们未设置时,它们默认为 {1/1/0001 12:00:00 AM} .

调用db.SubmitChanges() ,您正试图将一个值插入到 DateTime 中列是 SQL SERVER 支持的较低值,如您的异常所示。

SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM.

关于c# - SQL Server 中的日期时间问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19018600/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com