I developed a monitoring application. So I used the timer function to check some values ββin the SQL table.
although there are so many functions, it gives the following error for a single function called getLogEntry ()
message>Transaction (Process ID 84) was deadlocked on lock resources with another process and has been chosen as the deadlock victim. Rerun the transaction.</message> <innerMessage> </innerMessage> <source>.Net SqlClient Data Provider</source> <stackTrace>at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlDataReader.HasMoreRows() at System.Data.SqlClient.SqlDataReader.ReadInternal(Boolean setTimeout) at ShiftAlertSystem.DBAccess.getLogEntry(Int32 nEventLogIdn, connections cn)</stackTrace> <createdAt>2012/06/18 13:10:47</createdAt>
This is a function implementation
public LogEntry getLogEntry(int nEventLogIdn, connections cn) { lock (_objLock) { LogEntry lgEntObj = new LogEntry(); SqlConnection NewCon3 = new SqlConnection(); SqlCommand newCmd2 = null; SqlDataReader dr = null; try { string connectString; // Configuration config = ConfigurationManager.u string DataSource = cryptIT.Decrypt(cn.DataSource_bio); string initialCatalog = cryptIT.Decrypt(cn.InitialCatalog_bio); string user = cryptIT.Decrypt(cn.user_bio); string password = cryptIT.Decrypt(cn.password_bio); bool intergratedSecurity = cn.IntegratedSecurity_bio; if (intergratedSecurity) { connectString = "Data Source=" + DataSource + ";Initial Catalog=" + initialCatalog + ";Integrated Security=True"; } else { connectString = "Data Source=" + DataSource + ";Initial Catalog=" + initialCatalog + ";User ID=" + user + ";Password=" + password; } NewCon3 = new SqlConnection(connectString); NewCon3.Open(); newCmd2 = NewCon3.CreateCommand(); newCmd2.Connection = NewCon3; newCmd2.CommandType = CommandType.Text; newCmd2.CommandText = @" SELECT [nUserID] ,[sUserName] ,dateadd(s,[nDateTime],'1970/1/1') AS LogDateTime ,[nEventIdn] ,[nTNAEvent] ,[TB_READER].[nReaderIdn] ,[sName] FROM [TB_EVENT_LOG] ,[TB_USER] ,[TB_READER] WHERE [nEventLogIdn] = " + nEventLogIdn + @" AND [TB_EVENT_LOG].[nUserID] = [TB_USER].[sUserID] AND [nFlag]= 1 AND [TB_EVENT_LOG].[nReaderIdn]=[TB_READER].[nReaderIdn]" ; dr = newCmd2.ExecuteReader(); if (dr != null && dr.Read()) { lgEntObj.nUserID = dr.GetInt32(0); lgEntObj.nUserName = dr.GetString(1); lgEntObj.LogDateTime = dr.GetDateTime(2); lgEntObj.nEventIdn = dr.GetInt32(3); lgEntObj.nTNAEvent = dr.GetInt16(4); lgEntObj.nReaderIdn = dr.GetInt32(5); lgEntObj.sName = dr.GetString(6); } dr.Close(); newCmd2.Dispose(); // NewCon.Close(); NewCon3.Close(); return lgEntObj; } catch (Exception exc) { CenUtility.ErrorLog.CreateLog(exc); return null; } finally { if (dr != null) dr.Close(); if(newCmd2 != null) newCmd2.Dispose(); NewCon3.Close(); } } }
Thanks in advance
c # sql sql-server deadlock
Tharik kanaka
source share