C#中解決插入資料庫的某個欄位類型為datetime 去掉預設值1900-01-01

來源:互聯網
上載者:User

在我的一個程式裡遇到這樣一個問題?
在資料庫中的某個欄位類型為 datetime     
頁面上對應該欄位的為一個text文本輸入框,意思是輸入時間。
string strId =txtId.Text.Trim();
string strName=txtName.Text.Trim();
string strPwd=txtPwd.Text.Trim();
string strExpiry=txtTime.Text.Trim(); //時間
  
System.Data.SqlClient.SqlParameter []parmCustomers = new SqlParameter[3];
parmCustomers[0] = new SqlParameter( "@C_Id", strId );
parmCustomers[1] = new SqlParameter( "@Name", strName );
parmCustomers[2] = new SqlParameter( "@Pwd", strPwd );  
parmCustomers[3] = new SqlParameter("@Date",strExpiry);//如果現文本裡沒有輸入時間

SqlServerDatabase obj = new SqlServerDatabase();
if ( obj.RunProc( "proc_AddUser", parmCustomers ) == 1 )  // 添加成功
{
    Response.Write("<script type='text/javascript'>alert('Add Success!')</script>");
}
上段程式當然可以添加成功,  
問題是當txtTime.Text什麼都沒輸入的時候,資料庫中的這個欄位仍然會儲存   1900-01-01   00:00:00.000  
於是我就在parmCustomers[3] = new SqlParameter("@Date", " " )寫入Null 字元串 或是 null ,可問題插入後資料庫裡還是顯示1900-01-01  

以下是解決辦法:
於是加了判斷:   //注 資料庫裡時間欄位要設定永許為空白

string strExpiry=this.txtTime.Text.Trim();

System.Data.SqlClient.SqlParameter []parmCustomers = new SqlParameter[3];
parmCustomers[0] = new SqlParameter( "@C_Id", strId );
parmCustomers[1] = new SqlParameter( "@Name", strName );
parmCustomers[2] = new SqlParameter( "@Pwd", strPwd );  
  
if(strExpiry.ToString()=="")
{
    parmCustomers[3] = new SqlParameter("@Date",DBNull.Value);//如果文字框的時間為空白的話就吧 strExpiry 改為 DBNull.Value 就OK了
}
else
{
    parmCustomers[3] = new SqlParameter("@Date",strExpiry);//有值時
}
SqlServerDatabase obj = new SqlServerDatabase();
if ( obj.RunProc( "proc_AddUser", parmCustomers ) == 1 )  // 添加成功
{
    Response.Write("<script type='text/javascript'>alert('Add Success!')</script>");
}
如果是Sql語句直接插入的話 
insert into AddUser (name,pwd)values('test','123')
date欄位 就不要寫入到插入的Sql語句裡 這樣資料庫裡的值就為空白了。。。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.