NLog将GUID写入数据库

时间:2017-07-04 19:56:39

标签: c# sql guid nlog

每次在数据库中写入日志时,我都无法插入guid ID。它抛出了这些错误:

Exception thrown: 'System.Data.SqlClient.SqlException' in System.Data.SqlClient.dll
Exception thrown: 'System.Data.SqlClient.SqlException' in NLog.dll

到目前为止我所拥有的:

    @"INSERT INTO [dbo].[Nlogs] 
            (Id,Message) 
            values
            (@Id,@Message)";

    databaseTarget.Parameters.Add(new DatabaseParameterInfo("@Id", Guid.NewGuid().ToString()));
    databaseTarget.Parameters.Add(new DatabaseParameterInfo("@Message", "${message}"));

感谢。

2 个答案:

答案 0 :(得分:1)

结束这样做:

@"INSERT INTO [dbo].[Nlogs] 
        (Id,Message) 
        values
        (NewID(),@Message)";

databaseTarget.Parameters.Add(new DatabaseParameterInfo("@Message", "${message}"));

答案 1 :(得分:0)

  

如何为每个条目创建新的Guid?

使用${guid}event properties

例如:

<target name="db"
        xsi:type="Database"
        connectionStringName="NLogConn"
        commandText="NSERT INTO [dbo].[Nlogs] 
            (Id,Message) 
            values
            (@Id,@Message)" >
  <parameter name="@Id"      layout="${guid}" />
  <parameter name="@Message" layout="${message}" />
</target>