首页数据库使用c#构造date数据类型

使用c#构造date数据类型

时间2024-02-28 22:33:03发布访客分类数据库浏览252
导读:收集整理的这篇文章主要介绍了使用c#构造date数据类型,觉得挺不错的,现在分享给大家,也给大家做个参考。 /*********************************** 作者...
收集整理的这篇文章主要介绍了使用c#构造date数据类型,觉得挺不错的,现在分享给大家,也给大家做个参考。 /***********************************
作者:trieagle(让你望见影子的墙)
日期:2009.8.14
注: 转载请保留此信息
************************************/
使用c#构造date数据类型
在SQL server2005没有实现date类型,但是提供了很好的扩展性,可以利用CLR来构造date类型。有一部分是参考了fc的代码写的。
步骤:
1、在vs 2005中新建项目,一次选择c#——> > 数据库——> > sql server项目,输入项目名称
2、选择要连接的数据库
3、在项目名称右键,添加——> > 新建项——> > 用户定义的类型——> > 输入类型名称
4、代码如下:
复制代码 代码如下:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTyPEs;
using Microsoft.SqlServer.Server;
[Serializable]
[Microsoft.SqlServer.Server.SqlUserdefinedTypeFormat.UserDefined ,IsByteOrdered=true,MaxByteSize =20,ValidationMethodName="ValidateDate")]
public struct date : INullable,IBinarySerialize
{
// 私有成员
PRivate bool m_Null;
private string m_date;
public override string ToString()
{
if (this.m_Null)
return "null";
else
{
return this.m_date;
}
}
public bool IsNull
{
get
{
return m_Null;
}
}
public static date Null
{
get
{
date h = new date();
h.m_Null = true;
return h;
}
}
public static date Parse(SqlString s)
{
if (s.IsNull || (!s.IsNull & & s.Value.Equals("")))
return Null;
else
{
date u = new date();
string[] xy = s.Value.SplIT(" ".ToCharArray());
u.m_date = xy[0];
if (!u.ValidateDate())
throw new argumentException ("无效的时间");
return u;
}
}
public string _date
{
get
{
return this.m_date;
}
set
{
m_Null = true;
m_date = value;
if (!ValidateDate())
throw new argumentException("无效的时间");
}
}
public void Write(System.IO.BinaryWriter w)
{
byte header = (byte)(this.IsNull ? 1 : 0);
w.Write(header);
if (header == 1)
{
return;
}
w.Write(this.m_date);
}
public void Read(System.IO.BinaryReader r)
{
byte header = r.ReadByte();
if (header == 1)
{
this.m_Null = true;
return;
}
this.m_Null = false ;
this.m_date = r.ReadString();
}
private bool ValidateDate() //判断时间是否有效
{
try
{
DateTime dt = Convert.ToDateTime(m_date);
return true;
}
catch
{
return false;
}
}
}

5、按F5进行部署
6、测试:
复制代码 代码如下:
CREATE TABLE tb(id int,dt dbo.Date DEFAULT CONVERT(dbo.Date,CONVERT(VArchAR(10),GETDATE(),120)));
insert into tb(id) values(1)
SELECT id,dt=dt.ToString() From tb;
/*
结果:
id dt
1 2009-08-14
*/
DROP TABLE tb;

注:
1、 如果要对date类型进行日期的加减,可以调用ToString()方法输出为字符串,然后转化为datetime类型,然后再进行日期的计算。
2、 不能直接使用select * from tb 来输出dt列的值,这样输出的是一串二进制数 您可能感兴趣的文章:
  • C#基础之数据类型转换
  • c#数据类型基础
  • C# double和decimal数据类型以截断的方式保留指定的小数位数
  • C#实现任意数据类型转成json格式输出
  • 浅析C#数据类型转换的几种形式
  • 数据库 数据类型float到C#类型decimal, float数据类型转化无效
  • C#判断数据类型的简单示例代码
  • c# 数据类型占用的字节数介绍
  • C#的四种基本数据类型

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 使用c#构造date数据类型
本文地址: https://pptw.com/jishu/632030.html
在SQLServer 2005中编写存储过程 SQLServer 设置单词首字母大写

游客 回复需填写必要信息