Wednesday, March 7, 2012

Error = Arithmetic overflow error converting expression to data type smalldatetim

$exception {"Arithmetic overflow error converting expression to data type smalldatetime.\r\nThe statement has been terminated."} System.Exception {System.Data.SqlClient.SqlException}

occursCrying

here is my code

protectedvoid EmailSubmitBtn_Click(object sender,EventArgs e)

{

SqlDataSource NewsletterSqlDataSource =newSqlDataSource();

NewsletterSqlDataSource.ConnectionString =

ConfigurationManager.ConnectionStrings["NewsletterConnectionString"].ToString();

//Text version

NewsletterSqlDataSource.InsertCommandType =

SqlDataSourceCommandType.Text;

NewsletterSqlDataSource.InsertCommand =

"INSERT INTO NewsLetter (EmailAddress, IPAddress, DateTimeStamp) VALUES (@.EmailAddress, @.IPAddress, @.DateTimeStamp)";

//storeprocedure version//NewsletterSqlDataSource.InsertCommandType = SqlDataSourceCommandType.StoredProcedure;//NewsletterSqlDataSource.InsertCommand = "EmailInsert";

NewsletterSqlDataSource.InsertParameters.Add(

"EmailAddress", EmailTb.Text);

NewsletterSqlDataSource.InsertParameters.Add(

"IPAddress", Request.UserHostAddress.ToString());

NewsletterSqlDataSource.InsertParameters.Add(

"DateTimeStamp",DateTime.Now.ToString());int rowsAffected = 0;try

{

rowsAffected = NewsletterSqlDataSource.Insert();

}

catch (Exception ex)

{

Server.Transfer(

"NewsletterProblem.aspx");

}

finally

{

NewsletterSqlDataSource =

null;

}

if (rowsAffected != 1)

{

Server.Transfer(

"NewsletterProblem.aspx");

}

else

{

Server.Transfer(

"NewsletterSuccess.aspx");

}

Do not pass the Value asDateTime.Now.ToString() . Just pass the value asDateTime.Now if the db datatype is smalldatetime. If the input datatype for stored procedure is string , try

DateTime

.Now.ToShortDateString(); . Let me know if you need any clarifications

No comments:

Post a Comment