Tuesday, March 23, 2010

Can't access App_Code class in Code Behind file

I had created a struct in file in the App_Code. But I can't able to access the namespace.
 
namespace StructTest
{
public struct Student
{
int id;
int zipcode;
double salary;
}
}

Solution
Right click on the file and select properties then change the Build Action to Compile.

Friday, March 19, 2010

Generate Select and Update Procedure

Generates Select Procedure
Use the this link create-parameters to create paramaters for this.

declare @ProcName varchar(250)
declare @SchemaName varchar(250)
DECLARE @NewLineChar AS CHAR(2)
DECLARE @HorizontalTabChar AS CHAR(1)
DECLARE @VerticalTabChar AS CHAR(1)
DECLARE @ColNames AS varchar(8000)
DECLARE @TableName AS varchar(200)

SET @ProcName = 'Getcompany'
SET @SchemaName = 'dbo'
SET @NewLineChar =  CHAR(13) + CHAR(10)
SET @HorizontalTabChar = CHAR(9)
set @VerticalTabChar = CHAR(11)
SET @ColNames = REPLICATE(@HorizontalTabChar, 3)
SET @TableName = 'company'

SELECT
@ColNames = @ColNames + syscolumns.name + ',' + @NewLineChar + REPLICATE(@HorizontalTabChar, 3)
FROM sysobjects
JOIN syscolumns ON sysobjects.id = syscolumns.id
where sysobjects.ID = OBJECT_ID(@TableName)

SET @ColNames = Left(@ColNames, Len(@ColNames)-6)

PRINT 'if exists (select * from dbo.sysobjects where id = object_id(N''[' +@SchemaName+ '].[' + @ProcName +']'') and OBJECTPROPERTY(id, N''IsProcedure'') = 1)'
+ @NewLineChar + 'BEGIN'
+ @NewLineChar + @HorizontalTabChar + 'DROP PROCEDURE [' +@SchemaName+ '].[' + @ProcName +'] '
+ @NewLineChar + 'END'
+ @NewLineChar + 'GO'
+ @NewLineChar
+ @NewLineChar + 'CREATE PROCEDURE [' +@SchemaName+ '].[' + @ProcName +']'
+ @NewLineChar + 'AS'
+ @NewLineChar + @HorizontalTabChar + ' BEGIN'
+ @NewLineChar + REPLICATE(@HorizontalTabChar, 2) + ' SELECT'
+ @NewLineChar + @ColNames
+ @NewLineChar + REPLICATE(@HorizontalTabChar, 2)+  'FROM ' + @TableName
+ @NewLineChar + @HorizontalTabChar + ' END'

Generates Update Procedure
To pass parameters to the Update Procedure use the link to generate Parameters.
Generate Parameters
DECLARE @ProcName             VARCHAR(250)
DECLARE @SchemaName           VARCHAR(250)
DECLARE @NewLineChar AS       CHAR(2)
DECLARE @HorizontalTabChar AS CHAR(1)
DECLARE @VerticalTabChar AS   CHAR(1)
DECLARE @ColNames AS          VARCHAR(8000)
DECLARE @TableName AS         VARCHAR(200)

SET @ProcName          = 'zxcvbnm'
SET @SchemaName        = 'dbo'
SET @NewLineChar       = CHAR(13) + CHAR(10)
SET @HorizontalTabChar = CHAR(9)
SET @VerticalTabChar   = CHAR(11)
SET @ColNames          = REPLICATE(@HorizontalTabChar, 3)
SET @TableName   = 'company'

SELECT @ColNames       = @ColNames + syscolumns.name + ' = @' + syscolumns.name + ',' + @NewLineChar + REPLICATE(@HorizontalTabChar, 3)
FROM   sysobjects
JOIN syscolumns
ON     sysobjects.id = syscolumns.id
WHERE  sysobjects.ID        = OBJECT_ID(@TableName)

SET @ColNames = LEFT(@ColNames, LEN(@ColNames)-6)

PRINT 'if exists (select * from dbo.sysobjects where id = object_id(N''[' +@SchemaName+ '].[' + @ProcName +']'') and OBJECTPROPERTY(id, N''IsProcedure'') = 1)'
+ @NewLineChar + 'BEGIN'
+ @NewLineChar + @HorizontalTabChar + 'DROP PROCEDURE [' +@SchemaName+ '].[' + @ProcName +'] '
+ @NewLineChar + 'END'
+ @NewLineChar + 'GO'
+ @NewLineChar
+ @NewLineChar + 'CREATE PROCEDURE [' +@SchemaName+ '].[' + @ProcName +']'
+ @NewLineChar + 'AS'
+ @NewLineChar + @HorizontalTabChar + ' BEGIN'
+ @NewLineChar + REPLICATE(@HorizontalTabChar, 2) + ' UPDATE ' + @TableName
+ @NewLineChar + REPLICATE(@HorizontalTabChar, 3) + 'SET'
+ @NewLineChar + @ColNames
+ @NewLineChar + @HorizontalTabChar + ' END'

Thursday, March 18, 2010

Where column alows null

DECLARE @Test TABLE (ID INT  IDENTITY (1,1),  
Name VARCHAR(250) NOT NULL, Street VARCHAR(250) NULL)

INSERT INTO @Test
SELECT 'Ashok', NULL UNION ALL
SELECT 'Guru', NULL UNION ALL
SELECT 'Babu', 'Idappadi' UNION ALL
SELECT 'Gopi', NULL UNION ALL
SELECT 'Balaji', NULL UNION ALL
SELECT 'Senthil', NULL UNION ALL
SELECT 'Saravanan', NULL UNION ALL
SELECT 'Suresh', NULL

I want to get the records whose street not equal to 'Idappadi'

The query given below returns nothing.
SELECT Name, Street FROM @Test
WHERE Street != 'Idappadi'

Then I modified as below which returns correct result.
SELECT Name, Street FROM @Test
WHERE ISNULL(Street, '') != 'Idappadi'

Saturday, March 13, 2010

Get the Last charindex of a char in a string

DECLARE @TempTable TABLE (NewPK INT identity(1,1), Customer VARCHAR(100) NOT NULL)
DECLARE @SearchChars VARCHAR(10)

SET @SearchChars = '-'

INSERT
INTO  @TempTable (Customer)
SELECT 'BabuKumarasamy-100313-0001' UNION ALL
SELECT 'BabuKumarasamy-1003313-00110' UNION ALL
SELECT 'KrishnaMoorthi-Konganapuram-0020' UNION ALL
SELECT 'Saravanan-100313-0006' UNION ALL
SELECT 'Sankar-100313-0001'

SELECT (LEN(Customer) - CHARINDEX(@SearchChars, reverse(Customer))) AS LastIndex,
       SUBSTRING (Customer, 0, (LEN(Customer) - CHARINDEX(@SearchChars, reverse(Customer))) + 1) AS StringBeforeTheIndex,
       SUBSTRING (Customer,(LEN(Customer)- CHARINDEX(@SearchChars, reverse(Customer))) + 2, LEN(Customer) - (LEN(Customer) - CHARINDEX(@SearchChars, reverse(Customer)))) AS StringAfterTheIndex
FROM   @TempTable
WHERE  Customer LIKE 'BabuKumarasamy%'

Monday, March 1, 2010

null-coalescing operator

The ?? operator is called the null-coalescing operator and is used to define a default value for a nullable value types as well as reference types. It returns the left-hand operand if it is not null; otherwise it returns the right operand.

If you try to assign a nullable value type to a non-nullable value type without using the ?? operator, you will generate a compile-time error. If you use a cast, and the nullable value type is currently undefined, an InvalidOperationException exception will be thrown.

  
string partner = Request.QueryString["GoogleId"] ??

Request.QueryString["PartnerId"] ??

Request.QueryString["UserKey"] ??

string.Empty;

Friday, February 19, 2010

Copy a ListBox Items to Another ListBox

private void CopyAListItemToAnotherListItem()
{
ArrayList al = new ArrayList();
for (int i = 97; i < 105; i++)
{
al.Add(Convert.ToChar(i));
}

ListBox1.DataSource = al;
ListBox1.DataBind();

ListBox2.Items.AddRange(ListBox1.Items.Cast().ToArray());
}