insertcommand.Parameters("@a1").Value = DBNull.Value

解决方案 »

  1.   

    试试DBNull.Value如何
    insertcommand.Parameters("@a2").Value = DBNull.Value
      

  2.   


     
    1.Convert.DBNull.  
    Convert类,很实用的  
    ---------------------------------------------------------------  
     
    2.Dataset.tables[0].row[0]["field"]=DBNull.Value;
      

  3.   

    时间在数据库实际上是字符串 这样就可以了
    insertcommand.Parameters("@a2").Value =""
      

  4.   

    using System;
    using System.Data;
    using System.Data.SqlClient;
    namespace Wonder.Lib.Base
    {
    /// <summary>
    /// 封装SqlDataReader,主要处理了DBNull
    /// </summary>
    public class WDRead 
    { public const byte NULL_INT = 0;
    public const string NULL_STR = "";
    public static DateTime NULL_DATE = new DateTime(1,1,1);
    public const char NULL_CHAR = '\0';
    public static Guid NULL_GUID = Guid.Empty;
    /// <summary>
    /// 
    /// </summary>
    public SqlDataReader m_read = null; /// <summary>
    /// 构造函数
    /// </summary>
    /// <param name="read"></param>
    public WDRead(SqlDataReader read)
    {
    m_read = read;
    }

    //-------------------------------------------------------
    // 类型转化
    //------------------------------------------------------- /// <summary>
    /// 传递字符型参数到SqlCommand
    /// </summary>
    /// <param name="str"></param>
    /// <returns></returns>
    public static object SendStr(string str)
    {
    if(str == null)
    return DBNull.Value;
    else
    return str;
    } /// <summary>
    /// 传递日期型参数到SqlCommand
    /// </summary>
    /// <param name="dt"></param>
    /// <returns></returns>
    public  static object SendDate(DateTime dt)
    {
    if(dt.Ticks == 0)
    return DBNull.Value;
    else
    return dt;
    } /// <summary>
    /// 传送字节型数据到SqlCommand
    /// </summary>
    /// <param name="c"></param>
    /// <returns></returns>
    public static object SendChar(char c)
    {
    if(c == '\0')
    return DBNull.Value;
    else
    return c;
    }

    /// <summary>
    /// 传送Guid型数据到SqlCommand
    /// </summary>
    /// <param name="c"></param>
    /// <returns></returns>
    public static object SendGuid(Guid c)
    {
    if(c == Guid.Empty )
    return DBNull.Value;
    else
    return c;
    }
    /// <summary>
    /// 读下一条记录
    /// </summary>
    /// <returns></returns>
    public bool  Read()
    {
    return m_read.Read();
    }
    /// <summary>
    /// 取得字符串类型
    /// </summary>
    /// <param name="item">字段名</param>
    /// <returns>字段值或NULL_STR</returns>
    public string GString(string item)
    {
    if(m_read.IsDBNull(m_read.GetOrdinal(item)))
    return NULL_STR;
    else
    return m_read.GetString (m_read.GetOrdinal(item));
    } /// <summary>
    /// 取得整数类型
    /// </summary>
    /// <param name="item">字段名</param>
    /// <returns>字段值或NULL</returns>
    public int GInt(string item)
    {
    if(m_read.IsDBNull(m_read.GetOrdinal(item)))
    return NULL_INT ;
    else
    return m_read.GetInt32 (m_read.GetOrdinal(item));
    } public Int16 GWord(string item)
    {
    if(m_read.IsDBNull(m_read.GetOrdinal(item)))
    return NULL_INT ;
    else
    return m_read.GetInt16 (m_read.GetOrdinal(item));

    } /// <summary>
    /// 取得日期类型
    /// </summary>
    /// <param name="item">字段名</param>
    /// <returns>字段值或NULL_DATE</returns>
    public DateTime GDate(string item)
    {
    if(m_read.IsDBNull(m_read.GetOrdinal(item)))
    return NULL_DATE ;
    else
    return m_read.GetDateTime (m_read.GetOrdinal(item));
    } /// <summary>
    /// 取得byte类型
    /// </summary>
    /// <param name="item">字段名</param>
    /// <returns>字段值或NULL_INT</returns>
    public byte GByte(string item)
    {
    if(m_read.IsDBNull(m_read.GetOrdinal(item)))
    return NULL_INT ;
    else
    return m_read.GetByte (m_read.GetOrdinal(item));
    } /// <summary>
    /// 取得boolean类型
    /// </summary>
    /// <param name="item">字段名</param>
    /// <returns>字段值或NULL_INT</returns>
    public bool GBool(string item)
    {
    if(m_read.IsDBNull(m_read.GetOrdinal(item)))
    return false ;
    else
    return m_read.GetBoolean( m_read.GetOrdinal(item));//( 1 ==m_read.GetByte (m_read.GetOrdinal(item)));
    } /// <summary>
    /// 取得char类型
    /// </summary>
    /// <param name="item">字段名</param>
    /// <returns>字段值或NULL_INT</returns>
    public char GChar(string item)
    {
    if(m_read.IsDBNull(m_read.GetOrdinal(item)))
    return NULL_CHAR ;
    else
    return Convert.ToChar(m_read[item]);
    } /// <summary>
    /// 取得Decimal类型
    /// </summary>
    /// <param name="item">字段名</param>
    /// <returns>字段值或NULL_INT</returns>
    public Decimal GDec(string item)
    {
    if(m_read.IsDBNull(m_read.GetOrdinal(item)))
    return NULL_INT ;
    else
    return m_read.GetDecimal (m_read.GetOrdinal(item));
    }
    /// <summary>
    /// 取得Guid类型
    /// </summary>
    /// <param name="item">字段名</param>
    /// <returns>字段值或NULL_GUID</returns>
    public Guid GGuid(string item)
    {
    if(m_read.IsDBNull(m_read.GetOrdinal(item)))
    return NULL_GUID ;
    else
    {
    return  m_read.GetGuid(m_read.GetOrdinal(item));
    }
    } /// <summary>
    /// 取得指定read 的 字符串
    /// </summary>
    /// <param name="read"></param>
    /// <param name="item"></param>
    /// <returns></returns>
    public static string GStr(SqlDataReader read,int item)
    {
    if(read.Read())
    {
    if(read.IsDBNull(item))
    return null;
    else
    return read.GetString(item); }
    else
    return null;
    } /// <summary>
    /// 取得指定read 的 字符串
    /// </summary>
    /// <param name="read"></param>
    /// <param name="item"></param>
    /// <returns></returns>
    public static string GStr(SqlDataReader read,string item)
    {
    if(read.Read())
    {
    if(read.IsDBNull(read.GetOrdinal(item)))
    return null;
    else
    return read.GetString(read.GetOrdinal(item)); }
    else
    return null;
    }

    }
    }