如何使用Pervasive SQL读取插入数据库表的记录的标识?

时间:2017-05-04 19:07:02

标签: c# pervasive

我正在开发一个C#Windows窗体应用程序,需要在表中插入一条记录,然后回读记录的标识并将该标识传递给程序的另一部分。请参阅下面的代码。

ID_COLUMN属于PSQL类型标识。另请注意:

Pervasive SQL不支持SCOPE_IDENTITY。从文档中,@@ identity返回最近插入的Identity列的值。如果表没有标识列,则@@ identity将返回null。如果有两个插入,则@@ identity将返回插入的最后一个值。

其他说明:Pervasive版本是v11和使用Pervasive提供的数据提供程序。

using Pervasive.Data.SqlClient;

int newIdentity = 0;
string connectionString = 
  "Server Name=myServerAddress;Database Name=myDataBase;User ID=myUsername;"
PsqlConnection connection = new PsqlConnection(connectionString); 
string insertStatment= 
  "INSERT INTO TABLE_1 ( ID_COLUMN, DATA_COLUMN_1, DATA_COLUMN_2 ) " + 
  "        VALUES ( 0, 'My First Name', 'My Last Name' )";
try{
   PsqlCommand insertCommand = new PsqlCommand(insertStatment,connection);
   connection.Open();
   int rowCount = insertCommand.ExecuteNonQuery();
   if ( rowCount > 0 )
      {
         string selectIdentityStatment =
            " SELECT @@IDENTITY FROM TABLE_1 ";
         PsqlCommand selectIdentity =
         new PsqlCommand(selectIdentityStatment, connection );
         newIdentity =
           (int)selectIdentity.ExecuteScalar();  // THIS IS RETURNING NULL
       }
       else
        { // nothing was inserted
          // newIdentity = 0
        }
      }
Finally {
         Connection.Close();
        }

任何帮助都将深表感谢。

1 个答案:

答案 0 :(得分:-1)

PSQL V12和V13提供新版本的Actian PSQL Ado.net提供程序。如果当前版本存在任何问题,请告知我们。