Monday, 26 June 2017

SQL Database Full Text Search

  1. DECLARE @SearchStrColumnName nvarchar(100), @SearchStrColumnValue nvarchar(100), @SearchStrInXML bit  
  2. SET @SearchStrColumnValue = '%OWNED%' /* use LIKE syntax */  
  3. SET @SearchStrColumnName = NULL /* NULL for all, use LIKE syntax */  
  4. SET @SearchStrInXML = 0 /* Searching XML data may be slow */  
  5.   
  6. IF OBJECT_ID('tempdb..#Results'IS NOT NULL DROP TABLE #Results 
  7.  
  8. CREATE TABLE #Results (TableName nvarchar(128), ColumnName nvarchar(128), ColumnValue nvarchar(max),ColumnType nvarchar(20))  
  9.   
  10. SET NOCOUNT ON  
  11.   
  12. DECLARE @TableName nvarchar(256) = '',@ColumnName nvarchar(128),@ColumnType nvarchar(20), @QuotedSearchStrColumnValue nvarchar(110), @QuotedSearchStrColumnName nvarchar(110)  

  13. SET @QuotedSearchStrColumnValue = QUOTENAME(@SearchStrColumnValue,'''')  

  14. DECLARE @ColumnNameTable TABLE (COLUMN_NAME nvarchar(128),DATA_TYPE nvarchar(20))  
  15.   
  16. WHILE @TableName IS NOT NULL  
  17. BEGIN  
  18. SET @TableName =  
  19. (  
  20.    SELECT MIN(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME))  
  21.    FROM INFORMATION_SCHEMA.TABLES  
  22.    WHERE TABLE_TYPE = 'BASE TABLE'  
  23.    AND QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME) > @TableName  
  24.    AND OBJECTPROPERTY(OBJECT_ID(QUOTENAME(TABLE_SCHEMA) + '.' + QUOTENAME(TABLE_NAME)), 'IsMSShipped') = 0  
  25. )  
  26.   
  27. IF @TableName IS NOT NULL  
  28. BEGIN  
  29. DECLARE @sql VARCHAR(MAX)  
  30. SET @sql = 'SELECT QUOTENAME(COLUMN_NAME),DATA_TYPE  
  31. FROM INFORMATION_SCHEMA.COLUMNS  
  32. WHERE TABLE_SCHEMA = PARSENAME(''' + @TableName + ''', 2)  
  33. AND TABLE_NAME = PARSENAME(''' + @TableName + ''', 1)  
  34. AND DATA_TYPE IN (' + CASE WHEN ISNUMERIC(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(@SearchStrColumnValue,'%',''),'_',''),'[',''),']',''),'-','')) = 1 THEN '''tinyint'',''int'',''bigint'',' ELSE '' END + '''char'',''varchar'',''nchar'',''nvarchar''' + CASE @SearchStrInXML WHEN 1 THEN ',''xml''' ELSE '' END + ')  
  35. AND COLUMN_NAME LIKE COALESCE(' + CASE WHEN @SearchStrColumnName IS NULL THEN 'NULL' ELSE '''' + @SearchStrColumnName + '''' END  + ',COLUMN_NAME)'  

  36. INSERT INTO @ColumnNameTable  
  37. EXEC (@sql)  
  38. WHILE EXISTS (SELECT TOP 1 COLUMN_NAME FROM @ColumnNameTable)  
  39. BEGIN  
  40. SELECT TOP 1 @ColumnName = COLUMN_NAME,@ColumnType = DATA_TYPE FROM @ColumnNameTable  
  41. SET @sql = 'SELECT ''' + @TableName + ''',''' + @ColumnName + ''',' + CASE @SearchStrInXML WHEN 1 THEN 'LEFT(CAST(' + @ColumnName + ' AS nvarchar(MAX)), 4096),''' ELSE 'LEFT(' + @ColumnName + ', 4096),''' END + @ColumnType + '''  
  42. FROM ' + @TableName + ' (NOLOCK) ' +  
  43. ' WHERE ' + CASE @SearchStrInXML WHEN 1 THEN 'CAST(' + @ColumnName + ' AS nvarchar(MAX))' ELSE @ColumnName END + ' LIKE ' + @QuotedSearchStrColumnValue  
  44. INSERT INTO #Results  
  45. EXEC(@sql)  
  46. DELETE FROM @ColumnNameTable WHERE COLUMN_NAME = @ColumnName  
  47. END   
  48. END  
  49. END  

  50. SET NOCOUNT OFF  
  51. SELECT TableName, ColumnName, ColumnValue, ColumnType, COUNT(*) AS Count FROM #Results  
  52. GROUP BY TableName, ColumnName, ColumnValue, ColumnType  

Output:


How to get Visitor IP Address and Location in ASP.Net

  1. HttpRequest request=base.Request;
  2. String VisitorIP=request.UserHostAddress;

Export DataSet To Excel in MVC


NameSpace :
using System.Web.Hosting;
using ClosedXML.Excel;


Code  :

[MTAThread]
        private void ExportDataSetToExcel(DataSet ds, String excelName)
        {

            string path = HostingEnvironment.MapPath("~/FolderName/");
            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }
            path = path + excelName;
            using (XLWorkbook wb = new XLWorkbook())
            {
                wb.Worksheets.Add(ds.Tables[0]);
                wb.Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;
                wb.Style.Font.Bold = true;
                wb.SaveAs(path, false);
            }
        }

Example:


DataSet objds = new Dataset();
ExportDataSetToExcel(objds, "FileName.xlsx");

DataTable To JSON With StringBuilder in MVC

Namespace 

using System.Text;

code :

      /// <summary>
        /// Datatable to JSON
        /// <CreatedBy>Ashish Srivastava</CreatedBy>
        /// <Date>12 Dec 2016</Date>
        /// </summary>
        /// </summary>
        /// <param name="table"></param>
        /// <returns></returns>
        public string DataTableToJSONWithStringBuilder(DataTable table)
        {
            var JSONString = new StringBuilder();      
            if (table.Rows.Count > 0)
            {
                JSONString.Append("{  \"status\":\"1\" ,\"result\": [");
                for (int i = 0; i < table.Rows.Count; i++)
                {
                    JSONString.Append("{");
                    for (int j = 0; j < table.Columns.Count; j++)
                    {
                        if (j < table.Columns.Count - 1)
                        {
                            JSONString.Append("\"" + table.Columns[j].ColumnName.ToString() + "\":" + "\"" + table.Rows[i][j].ToString() + "\",");
                        }
                        else if (j == table.Columns.Count - 1)
                        {
                            JSONString.Append("\"" + table.Columns[j].ColumnName.ToString() + "\":" + "\"" + table.Rows[i][j].ToString() + "\"");
                        }
                    }
                    if (i == table.Rows.Count - 1)
                    {
                        JSONString.Append("}");
                    }
                    else
                    {
                        JSONString.Append("},");
                    }
                }
            }
            else
            {
                JSONString.Append("{  \"status\":\"0\" ,\"result\": [");
                JSONString.Append("{\"value\":" + "\"No record found\"}");
            }          
           JSONString.Append("]}");
            return JSONString.ToString();
        }

Saturday, 10 June 2017

SQL Query Time Execute Check

  1. SELECT    
  2.     qs.total_elapsed_time / qs.execution_count / 1000000.0 AS average_seconds,  
  3.     qs.total_elapsed_time / 1000000.0 AS total_seconds,  
  4.     qs.execution_count,  
  5.     SUBSTRING (qt.text,qs.statement_start_offset/2,   
  6.          (CASE WHEN qs.statement_end_offset = -1   
  7.             THEN LEN(CONVERT(NVARCHAR(MAX), qt.text)) * 2   
  8.           ELSE qs.statement_end_offset END - qs.statement_start_offset)/2) AS individual_query,  
  9.     o.name AS object_name,  
  10.     DB_NAME(qt.dbid) AS database_name  
  11. FROM sys.dm_exec_query_stats qs  
  12.     CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) as qt  
  13.     LEFT OUTER JOIN sys.objects o ON qt.objectid = o.object_id  
  14. WHERE qt.dbid = DB_ID()  
  15. ORDER BY average_seconds DESC;  

How to check SQL Database missing Index

  1. SELECT   
  2. dm_mid.database_id AS DatabaseID,  
  3. dm_migs.avg_user_impact*(dm_migs.user_seeks+dm_migs.user_scans) Avg_Estimated_Impact,  
  4. dm_migs.last_user_seek AS Last_User_Seek,  
  5. OBJECT_NAME(dm_mid.OBJECT_ID,dm_mid.database_id) AS [TableName],  
  6. 'CREATE INDEX [IX_' + OBJECT_NAME(dm_mid.OBJECT_ID,dm_mid.database_id) + '_'  
  7. REPLACE(REPLACE(REPLACE(ISNULL(dm_mid.equality_columns,''),', ','_'),'[',''),']','')   
  8. CASE  
  9. WHEN dm_mid.equality_columns IS NOT NULL  
  10. AND dm_mid.inequality_columns IS NOT NULL THEN '_'  
  11. ELSE ''  
  12. END  
  13. REPLACE(REPLACE(REPLACE(ISNULL(dm_mid.inequality_columns,''),', ','_'),'[',''),']','')  
  14. ']'  
  15. ' ON ' + dm_mid.statement  
  16. ' (' + ISNULL (dm_mid.equality_columns,'')  
  17. CASE WHEN dm_mid.equality_columns IS NOT NULL AND dm_mid.inequality_columns   
  18. IS NOT NULL THEN ',' ELSE  
  19. '' END  
  20. ISNULL (dm_mid.inequality_columns, '')  
  21. ')'  
  22. ISNULL (' INCLUDE (' + dm_mid.included_columns + ')'''AS Create_Statement  
  23. FROM sys.dm_db_missing_index_groups dm_mig  
  24. INNER JOIN sys.dm_db_missing_index_group_stats dm_migs  
  25. ON dm_migs.group_handle = dm_mig.index_group_handle  
  26. INNER JOIN sys.dm_db_missing_index_details dm_mid  
  27. ON dm_mig.index_handle = dm_mid.index_handle  
  28. WHERE dm_mid.database_ID = DB_ID()  
  29. ORDER BY Avg_Estimated_Impact DESC  
  30. GO 

Upload valid file in C#

    protected bool CheckFileExtandLength(HttpPostedFile HtmlDocFile)     {         try         {             Dictionary<string, byte[]...