zoukankan      html  css  js  c++  java
  • Enter Null Values for DateTime Column of SQL Server(转)

    http://www.c-sharpcorner.com/UploadFile/sd_patel/EnterNullValuesForDateTime11222005015742AM/EnterNullValuesForDateTime.aspx

    Intr

    Inserting a null value to the DateTime Field in SQL Server is one of the most common issues giving various errors. Even if one enters null values the value in the database is some default value as 1/1/1900 12:00:00 AM.

    oduction:

    Inserting a null value to the DateTime Field in SQL Server is one of the most common issues giving various errors. Even if one enters null values the value in the database is some default value as 1/1/1900 12:00:00 AM.

    The Output of entering the null DateTime based on the code would in most cases have errors as:

    • String was not recognized as a valid DateTime.
    • Value of type 'System.DBNull' cannot be converted to 'String'.

    Or No Error but DataTime entered in Database would be as 1/1/1900 12:00:00 AM
    So lets write the code to enter null values in the DataBase.

    The User Interface is as follows:

    To begin with Code:

    Namespaces used

    • System.Data.SqlClient/ System.Data.OleDb
    • System.Data.SqlTypes
    • Code for System.Data.SqlClient

    C#

    string
    sqlStmt ;
    string conString ;
    SqlConnection cn =
    null;
    SqlCommand cmd =
    null;
    SqlDateTime sqldatenull ;
    try
    {
    sqlStmt = "insert into Emp (FirstName,LastName,Date) Values (@FirstName,@LastName,@Date) ";
    conString = "server=localhost;database=Northwind;uid=sa;pwd=;";
    cn =
    new SqlConnection(conString);
    cmd =
    new SqlCommand(sqlStmt, cn);
    cmd.Parameters.Add(
    new SqlParameter("@FirstName", SqlDbType.NVarChar, 11));
    cmd.Parameters.Add(
    new SqlParameter("@LastName", SqlDbType.NVarChar, 40));
    cmd.Parameters.Add(
    new SqlParameter("@Date", SqlDbType.DateTime));
    sqldatenull = SqlDateTime.Null;
    cmd.Parameters["@FirstName"].Value = txtFirstName.Text;
    cmd.Parameters["@LastName"].Value = txtLastName.Text;
    if (txtDate.Text == "")
    {
    cmd.Parameters ["@Date"].Value =sqldatenull ;
    //cmd.Parameters["@Date"].Value = DBNull.Value;
    }
    else
    {
    cmd.Parameters["@Date"].Value = DateTime.Parse(txtDate.Text);
    }
    cn.Open();
    cmd.ExecuteNonQuery();
    Label1.Text = "Record Inserted Succesfully";
    }
    catch (Exception ex)
    {
    Label1.Text = ex.Message;
    }
    finally
    {
    cn.Close();
    }

    VB.NET

    Dim sqlStmt As String
    Dim
    conString As String
    Dim
    cn As SqlConnection
    Dim cmd As SqlCommand
    Dim sqldatenull As SqlDateTime
    Try
    sqlStmt = "insert into Emp (FirstName,LastName,Date) Values (@FirstName,@LastName,@Date) "
    conString = "server=localhost;database=Northwind;uid=sa;pwd=;"
    cn =
    New SqlConnection(conString)
    cmd =
    New SqlCommand(sqlStmt, cn)
    cmd.Parameters.Add(
    New SqlParameter("@FirstName", SqlDbType.NVarChar, 11))
    cmd.Parameters.Add(
    New SqlParameter("@LastName", SqlDbType.NVarChar, 40))cmd.Parameters.Add(New SqlParameter("@Date", SqlDbType.DateTime))
    sqldatenull = SqlDateTime.Null
    cmd.Parameters("@FirstName").Value = txtFirstName.Text
    cmd.Parameters("@LastName").Value = txtLastName.Text
    If (txtDate.Text = "") Then
    cmd.Parameters("@Date").Value = sqldatenull
    'cmd.Parameters("@Date").Value = DBNull.Value
    Else
    cmd.Parameters("@Date").Value = DateTime.Parse(txtDate.Text)
    End If
    cn.Open()
    cmd.ExecuteNonQuery()
    Label1.Text = "Record Inserted Succesfully"
    Catch ex As Exception
    Label1.Text = ex.Message
    Finally
    cn.Close()
    End Try

    Code for System.Data.SqlClient.

    C#

    string sqlStmt;
    string conString ;
    OleDbConnection cn =
    null ;
    OleDbCommand cmd =
    null ;
    try
    {
    sqlStmt = "insert into Emp (FirstName,LastName,Date) Values (?,?,?) ";
    conString = "Provider=sqloledb.1;user id=sa;pwd=;database=northwind;data source=localhost";
    cn =
    new OleDbConnection(conString);
    cmd =
    new OleDbCommand(sqlStmt, cn) ;
    cmd.Parameters.Add(
    new OleDbParameter("@FirstName", OleDbType.VarChar, 40));
    cmd.Parameters.Add(
    new OleDbParameter("@LastName", OleDbType.VarChar, 40));
    cmd.Parameters.Add(
    new OleDbParameter("@Date", OleDbType.Date));
    cmd.Parameters["@FirstName"].Value = txtFirstName.Text;
    cmd.Parameters["@LastName"].Value = txtLastName.Text;
    if ((txtDate.Text == "") )
    {
    cmd.Parameters["@Date"].Value = DBNull.Value;
    }
    else
    {
    cmd.Parameters["@Date"].Value = DateTime.Parse(txtDate.Text);
    }
    cn.Open();
    cmd.ExecuteNonQuery();
    Label1.Text = "Record Inserted Succesfully";
    }
    catch (Exception ex)
    {
    Label1.Text = ex.Message;
    }
    finally
    {
    cn.Close();


    VB.NET

    Dim
    sqlStmt As String
    Dim
    conString As String
    Dim
    cn As OleDbConnection
    Dim cmd As OleDbCommand
    Try
    sqlStmt = "insert into Emp (FirstName,LastName,Date) Values (?,?,?) "
    conString = "Provider=sqloledb.1;user id=sa;pwd=;database=northwind;data source=localhost"
    cn =
    New OleDbConnection(conString)
    cmd =
    New OleDbCommand(sqlStmt, cn)
    cmd.Parameters.Add(
    New OleDbParameter("@FirstName", OleDbType.VarChar, 40))cmd.Parameters.Add(New OleDbParameter("@LastName", OleDbType.VarChar, 40))cmd.Parameters.Add(New OleDbParameter("@Date", OleDbType.Date))cmd.Parameters("@FirstName").Value = txtFirstName.Text
    cmd.Parameters("@LastName").Value = txtLastName.Text
    If (txtDate.Text = "") Then
    cmd.Parameters("@Date").Value = DBNull.Value
    Else
    cmd.Parameters("@Date").Value = DateTime.Parse(txtDate.Text)
    End If
    cn.Open()
    cmd.ExecuteNonQuery()
    Label1.Text = "Record Inserted Succesfully"
    Catch ex As Exception
    Label1.Text = ex.Message
    Finally
    cn.Close()
    End Try

    The Data Entered in DataBase:

  • 相关阅读:
    优化不易,且写且珍惜
    作为过来人的感悟:进了小公司的程序员如何翻身进入大公司
    腾讯/阿里/百度 BAT人才体系的职位层级、薪酬、晋升标准
    校招生向京东发起的“攻势”,做到他这样,你,也可以
    通过Java 线程堆栈进行性能瓶颈分析
    基于Spring Cloud的微服务落地
    多线程技术使用指南
    Android 处理含有EditText的Activity虚拟键盘
    Android ListView的监听事件
    Android 开源框架Universal-Image-Loader完全解析(一)--- 基本介绍及使用
  • 原文地址:https://www.cnblogs.com/GDLMO/p/1625726.html
Copyright © 2011-2022 走看看