Data file can be repaired by DBCC repair command but there is risk of data loss so first take the database backup and also record all table count in excel file for compare the data after repair.
Step.1 Backup database.
Step.2 Get all tables record count.
Step.3 SET database in single user mode.
ALTER DATABASE DB_NAME SET SINGLE_USER WITH ROLLBACK IMMEDIATE
Step.4 RUN DBCC command-
DBCC CHECKDB(DB_NAME,REPAIR_ALLOW_DATA_LOSS)
Step.5 Get again all tables record count and compare with old record count.
SQL Query to get table record count-
DECLARE @T_Name VARCHAR(250)
DECLARE @COUNT INT
DECLARE @SQL VARCHAR(2000)
CREATE TABLE #T_Info(ID INT IDENTITY(1,1),T_Name VARCHAR(200),D_Count INT)
DECLARE TINFO_CUR CURSOR FOR
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_TYPE='BASE TABLE'
OPEN TINFO_CUR
FETCH NEXT FROM TINFO_CUR INTO @T_Name
WHILE @@FETCH_STATUS =0
BEGIN
SET @SQL='INSERT INTO #T_Info(T_Name,D_Count) SELECT '''+@T_Name+''',COUNT(*) FROM '+@T_Name+''
EXECUTE (@SQL)
FETCH NEXT FROM TINFO_CUR INTO @T_Name
END
CLOSE TINFO_CUR
DEALLOCATE TINFO_CUR
SELECT * FROM #T_Info ORDER BY T_NAME
DROP TABLE #T_Info