XSLT存档  

不及格的程序员-八神

 查看分类:  ASP.NET XML/XSLT JavaScripT   我的MSN空间Blog
随笔 - 880,  文章 - 0,  评论 - 1190,  阅读 - 34万
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

由于数据库中DateTime类型字段,最小值是1/1/1753 12:00:00,而.NET Framework中,DateTime类型,最小值是1/1/0001 0:00:00,显然,超出了sql的值的最小值范围,导致数据溢出错误

复制代码
using System.Data.SqlTypes;
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(".net最小时间为{0}",DateTime.MinValue.ToString());
            Console.WriteLine(".net最大时间为{0}",DateTime.MaxValue.ToString());
            Console.WriteLine("SQL最小时间为{0}",SqlDateTime.MinValue.ToString());
            Console.WriteLine("SQL最大时间为{0}",SqlDateTime.MaxValue.ToSqlString());
            Console.ReadKey();
        }
    }
}
复制代码
复制代码
try
                {
                    using (System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand())
                    {
                        cmd.Connection = sqlConn;
                        cmd.CommandType = CommandType.Text;
                        cmd.CommandText = "insert into tCollectionLog (iID_tControlNodes, cNodeName, cValue, cQuality, iType, cReturnInfo, dOPC)values(@iID_tControlNodes, @cNodeName, @cValue, @cQuality, @iType, @cReturnInfo, @dOPC)";
                        cmd.Parameters.AddWithValue("@iID_tControlNodes", iID_tControlNodes);
                        cmd.Parameters.AddWithValue("@cNodeName", item.ItemName);
                        cmd.Parameters.AddWithValue("@cValue", item.Value == null ? DBNull.Value : item.Value);//没有值时出错;参数化查询 '(@iID_tControlNodes nvarchar(36),@cNodeName nvarchar(13),@cValue' 需要参数 '@cValue',但未提供该参数。
                        cmd.Parameters.AddWithValue("@cQuality", string.Format("{0}", item.Quality));
                        cmd.Parameters.AddWithValue("@iType", type == OPCDataType.CURRENTTAG ? 1:2);
                        cmd.Parameters.AddWithValue("@cReturnInfo", item.ResultID.ToString());
                        cmd.Parameters.AddWithValue("@dOPC", item.Quality == Quality.Bad ? DBNull.Value : (object)item.Timestamp);
                        cmd.ExecuteNonQuery();
                    }
                }
                catch(Exception ex)
                {
                    IoriUtilityLib.Iori.LogUtil.logError(string.Format("InsertOPCReadLog:{0}" , ex.Message));
                }
复制代码

 

 

posted on   不及格的程序员-八神  阅读(422)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示