2014-02-05 2 views
-3

У меня есть таблица, в которой столбец levdat имеет тип данных DateTime. его значение вставляется текстовым полем. иногда оно может быть нулевым. Я хочу, чтобы всякий раз, когда текстовое поле пуста, нуль вставляется в столбец базы данных. но он вставляет 0001-01-01 00:00:00. мой код:Как вставить значение null в столбце datetime mysql в C#

string date3=txt_lev_dat.Text; 
if (date3 != "") 
{ 
    if ((!DateTime.TryParse(date3, out datetime)) && (date3 != "")) 
    { 
     lbl_lev_war.Text = "Incorrect Date"; 
     lbl_lev_war.ToolTip = "Please Enter Correct Date"; 
    } 
    else 
    { 
     objprp.p_tchlevdat = Convert.ToDateTime(date3); 
    } 
} 

Я попытался ввести DBnull.value. но это дает мне ошибку. Заранее спасибо. Моя процедура магазин

DELIMITER $$ 

DROP PROCEDURE IF EXISTS `db_school_management`.`ins_tch`$$ 

     CREATE PROCEDURE `db_school_management`.`ins_tch`(citycod INT,_statecod INT,_tchfstnam  VARCHAR(50),_tchlstnam VARCHAR(50),_tchfatnam VARCHAR(50), 
    _tchmotnam VARCHAR(50),_tchdob DATETIME,_tchgen VARCHAR(5),_tchadd VARCHAR(200),_tchmob VARCHAR(20),_tchphn VARCHAR(20),_tchzipcod VARCHAR(10), 
    _tchedu VARCHAR(50),_tchsal INT,_tcheml VARCHAR(50),_tchusrnam VARCHAR(50),_tchpwd VARCHAR(50),_tchjoindat DATETIME,_tchpic VARCHAR(50),_tchlevdat DATETIME,_flag VARCHAR(5)) 
     BEGIN 
    INSERT INTO tbteacher(citycod,statecod,tchfstnam,tchlstnam,tchfatnam,tchmotnam,tchdob,tchgen,tchadd,tchmob,tchphn,tchzipcod,tchedu,tchsal, 
    tcheml,tchusrnam,tchpwd,tchjoindat,tchpic,tchlevdat,flag) VALUES(_citycod,_statecod,_tchfstnam,_tchlstnam,_tchfatnam,_tchmotnam,_tchdob,_tchgen, 
    _tchadd,_tchmob,_tchphn,_tchzipcod,_tchedu,_tchsal,_tcheml,_tchusrnam,_tchpwd,_tchjoindat,_tchpic,_tchlevdat,_flag); 
     END 
+0

«, но Giv es me error "- какая ошибка? –

+0

ли столбец принимает значение «Null» в MySQL? –

+0

@MitchWheat Объект нельзя отнести из DBNull к другим типам. –

ответ

1

вы можете использовать ISNULL Недвижимость в MySQL

ISNULL

Как это

ISNULL(levdat,'') 

Попробуйте

DELIMITER $$ 

DROP PROCEDURE IF EXISTS `db_school_management`.`ins_tch`$$ 

CREATE PROCEDURE `db_school_management`.`ins_tch` 
    (citycod INT,_statecod INT,_tchfstnam  VARCHAR(50),_tchlstnam VARCHAR(50),_tchfatnam VARCHAR(50), 
    _tchmotnam VARCHAR(50),_tchdob DATETIME,_tchgen VARCHAR(5),_tchadd VARCHAR(200),_tchmob VARCHAR(20),_tchphn VARCHAR(20),_tchzipcod VARCHAR(10), 
    _tchedu VARCHAR(50),_tchsal INT,_tcheml VARCHAR(50),_tchusrnam VARCHAR(50),_tchpwd VARCHAR(50),_tchjoindat DATETIME,_tchpic VARCHAR(50),_tchlevdat DATETIME,_flag VARCHAR(5)) 
BEGIN 
    INSERT INTO tbteacher(citycod,statecod,tchfstnam,tchlstnam,tchfatnam,tchmotnam,tchdob,tchgen,tchadd,tchmob,tchphn,tchzipcod,tchedu,tchsal, 
    tcheml,tchusrnam,tchpwd,tchjoindat,tchpic,tchlevdat,flag) VALUES(_citycod,_statecod,_tchfstnam,_tchlstnam,_tchfatnam,_tchmotnam,ISNULL(_tchdob,''),_tchgen,  _tchadd,_tchmob,_tchphn,_tchzipcod,_tchedu,_tchsal,_tcheml,_tchusrnam,_tchpwd,_tchjoindat,_tchpic,ISNULL(_tchlevdat,''),_flag); 
END 
+0

спасибо за ответ vignesh, но я должен сделать это из C#. Я использую процедуру хранения, чтобы вставить значение. –

+0

Без проблем добавьте эту строку в процедуру магазина. Отметьте, если это вам помогло. –

+0

okey, Vignesh Я попробую его –

Смежные вопросы