我正在开发一个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();
}
任何帮助都将深表感谢。
答案 0 :(得分:-1)
PSQL V12和V13提供新版本的Actian PSQL Ado.net提供程序。如果当前版本存在任何问题,请告知我们。