Translate

Thursday, December 12, 2013

Serializer helper


/// Helper class for serializing / deserializing
/// var helper=new XmlSerializerHelper();
/// object
public class XmlSerializerHelper
{
     public Type _type;

     public XmlSerializerHelper()
     {
         _type = typeof(T);
     }

     /// Returns serialized xml string
     public string GetXml(object objectToSerialize)
     {
         if (objectToSerialize == null)
         {
             return string.Empty;
         }
         else
         {
             var stringWriter = new StringWriter();
             XmlWriterSettings settings = new XmlWriterSettings();
             settings.OmitXmlDeclaration = true;
             settings.Indent = false;
             using (XmlWriter writer = XmlWriter.Create(stringWriter, settings))
             {
                 XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
                 ns.Add(string.Empty, string.Empty);
                 XmlSerializer xmlSerializer = new XmlSerializer(objectToSerialize.GetType());
                 xmlSerializer.Serialize(writer, objectToSerialize, ns);
                 return stringWriter.ToString();
             }
         }
     }

     /// Returns deserialized object instance from xml
     /// xml string from data record
     /// object T
     public T GetObject(string xmlString)
     {
         T result;
         var reader = new StringReader(xmlString);
         XmlSerializer serializer = new XmlSerializer(_type);
         result = (T)serializer.Deserialize(reader);
         return result;
     }
 }

asp net Find all controls

private void GetControlList(ControlCollection controlCollection, List resultCollection) where T : Control
{
       foreach (Control control in controlCollection)
       {
          if (control is T) // This is cleaner
               resultCollection.Add((T)control);
           if (control.HasControls())
               GetControlList(control.Controls, resultCollection);
       }
}

Page: PreInit
Control: Init
Page: Init
Page: InitComplete
Page: PreLoad
Page: Load
Control: Load
Page: LoadComplete
Page: PreRender
Control: PreRender
Page: PreRenderComplete
Page: SaveStateComplete
Page: RenderControl
Page: Render
Control: RenderControl
Control: Unload
Control: Dispose
Page: Unload
Page: Dispose

Tuesday, November 19, 2013

Image Button CommandArgument on GridView

Use the CommandArgument property of an action button on a GridViewRow to facilitate record actions.
<asp:imagebutton commandargument="<%# Bind("RecordGuid")" commandname="EDIT_RECORD" height="12" id="imgEdit" imageurl="~/Images/edit.png" onclick="btnEditRequest_Click" runat="server" tooltip="Edit Request" width="12"></asp:imagebutton>
switch (btn.CommandArgument)
{
   case "EDIT_RECORD":
        break;
   case "DELETE_RECORD":
        break;
   case "VIEW_RECORD":
        if (recordGuid.ToString() != "00000000-0000-0000-0000-000000000000")
        {   
            string url = "NonexpenditureTransferDetail.aspx?id=" + recordGuid.ToString();
            Response.Redirect(url, false);
            Context.ApplicationInstance.CompleteRequest();
        }
        break;
}

Friday, November 15, 2013

Use XQuery to replace Xml element value

DECLARE @newVal varchar(50);
SELECT @newVal = 'A40AA80B-74D3-4357-961E-1A4C9E94651F';
-- Get xml contents
DECLARE @myDoc xml = (SELECT [DATA_XML] FROM [dbo].[TABLE] WHERE ([GUID] = @newVal));

-- Check contents
SELECT @myDoc

-- Replace value of
SET @myDoc.modify('delete (/root/RecordGuid[1])')
SET @myDoc.modify('insert {sql:variable("@newVal")} as first into (/root)[1] ') ;

-- Update record
UPDATE [iMARTDB].[dbo].[TABLE]
SET [DATA_XML] = @myDoc
WHERE ([GUID] = @newVal);

-- Verify
SELECT [DATA_XML] FROM [dbo].[TABLE] WHERE ([GUID] = @newVal);

Monday, October 7, 2013

Send bytes to web client as download


//Setup HttpResponse headers
Response.Clear();
Response.ClearHeaders();
Response.ContentType = "mime-type";
Response.AddHeader("Content-Disposition", "attachment;filename=a_filename.ext");

// Put pdf in OutputStream
//pdf.Save(Response.OutputStream);
// Put image in OutputStream
//bitmap.Save(Response.OutputStream);
// Put bytes in OutputStream
//Response.OutputStream.Write(Bytes[], 0, Bytes.Length);
//Response.BinaryWrite(Bytes[]);
// Put string in OutputStream
//Response.Write(System.Text.Encoding.ASCII.GetString(Bytes[]));

// Send to client
Response.End();
//Response.Flush();

Retrieve File / Sql Contents

// convert StreamReader to string
string path = Server.MapPath("filename");
if (System.IO.File.Exists(path)
{
    System.IO.StreamReader streamReader = new  System.IO.StreamReader(path);
    //System.IO.StreamReader streamReader = System.IO.File.OpenText(path);
    //System.IO.FileInfo fi = new System.IO.FileInfo(path);
    //System.IO.StreamReader streamReader = fi.OpenText();
}
// place string here
string html = streamReader.ReadToEnd();

// BinaryReader
// Determine buffer size
//System.IO.FileInfo fi = new System.IO.FileInfo(path);
//long bufLen = fi.Length
int chunkSize = 1024;
byte[] buffer = new byte[chunkSize];
//byte[] buffer = new byte[bufLen];
using (System.IO.BinaryReader binaryRdr = new System.IO.BinaryReader(streamReader.BaseStream))
{
    buffer = binaryReader.ReadBytes(chunkSize);
    while (buffer.Length > 0)
    {
        buffer = binaryReader.ReadBytes(chunkSize);
    }
    /* For undetermined sizes

    using (var ms = new MemoryStream())
    {
        streamReader.BaseStream.CopyTo(ms);
        buffer = ms.ToArray();
    }
    */

}

// SQL
System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(connectionString);

System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand("select columns from Table");
System.Data.SqlClient.SqlDataReader dataRdr;
con.Open();
dataRdr = cmd.ExecuteReader();

byte[] bytes = null;
b=(byte[])dataRdr.GetValue(0);
//OR
b=(byte[])dataRdr[0];




Sunday, September 15, 2013

Get Image (dah)

//  IHttpHandler
using (SqlConnection myConnection = new SqlConnection("connection-string"))
{
     SqlCommand cmd = new SqlCommand("usp_GetPersonImage", myConnection);
     cmd.CommandType = CommandType.StoredProcedure;
     myConnection.Open();
     cmd.Parameters.Add("@Param1", SqlDbType.Int).Value = context.Request.QueryString["PID"];
     cmd.Prepare();
     try
     {
          SqlDataReader reader = cmd.ExecuteReader();
          while (reader.Read())
          {
              byte[] bytes = null;
              bytes = (byte[])reader[0];
              context.Response.Clear();
              context.Response.ClearHeaders();
              context.Response.ContentType = "text/plain";
              string base64String = Convert.ToBase64String(bytes,Base64FormattingOptions.None);
              context.Response.Write(base64String);
          }
      }
      catch (System.Data.SqlTypes.SqlNullValueException ex)
      {
          string s = ex.Message;
          throw;
      }
}

//  Client


   



Thursday, July 25, 2013

Pad Right

@TableName + SPACE( 50 - LEN(@TableName))

replicate(@PadChar,@len-Len(@var))+@var

Monday, May 27, 2013

Add Drop DEFAULT Constraints


select
'ALTER TABLE '+ quotename(t.name) +' DROP CONSTRAINT ' + o.name 
from sysobjects o 
inner join syscolumns c on o.id = c.cdefault
inner join sysobjects t on c.id = t.id
where 
o.xtype = 'D'
go

select
'ALTER TABLE '+ quotename(t.name) +' ADD CONSTRAINT '+ quotename(o.name) + ' DEFAULT (getdate()) FOR ' + quotename(c.name)
from sysobjects o 
inner join syscolumns c on o.id = c.cdefault
inner join sysobjects t on c.id = t.id
where 
o.xtype = 'D'
go

Thursday, April 11, 2013

Last occurrence of char

select
reverse(substring(reverse(column),charindex(character,reverse(column)),len(column)))
from dbo.text

Friday, March 29, 2013

Split into table




FUNCTION [dbo].[udf_SplitRecordIDs]
(
@CsvList varchar(500)
)
RETURNS 
@ParsedList table
(
ID int
)
AS
BEGIN
DECLARE @ID varchar(10), @Pos int
DECLARE @delimiter char = ','
SET @CsvList = LTRIM(RTRIM(@CsvList))+ @delimiter
SET @Pos = CHARINDEX(@delimiter, @CsvList, 1)
IF REPLACE(@CsvList, @delimiter, '') <> ''
BEGIN
WHILE @Pos > 0
BEGIN
SET @ID = LTRIM(RTRIM(LEFT(@CsvList, @Pos - 1)))
IF @ID <> ''
BEGIN
INSERT INTO @ParsedList (ID) VALUES (CAST(@ID AS int))
END
SET @CsvList = RIGHT(@CsvList, LEN(@CsvList) - @Pos)
SET @Pos = CHARINDEX(@delimiter, @CsvList, 1)
END
END 
RETURN
END 


Windows Commands

takeown /f filename
icacls filename /grant username:f

Tuesday, March 26, 2013

Grouping

select top(100) percent
  ID

  ,AddressID
from
(
  SELECT
    ID
    ,rn = row_number() over (partition by ID order by ID, AddressID)
  FROM [dbo].[Fac]
    INNER JOIN [dbo].[FacAddress] ON Fac.ID = FacAddress.ID

) A
where (a.rn = 1)
order by FacilityID

Wednesday, January 30, 2013

DB Object Count

SELECT  [Count] = COUNT(*), [Type] = CASE type
    WHEN 'AF' THEN 'AGGREGATE_FUNCTION'
    WHEN 'C'  THEN 'CHECK_CONSTRAINT'
    WHEN 'D'  THEN 'DEFAULT_CONSTRAINT'
    WHEN 'F'  THEN 'FOREIGN_KEY_CONSTRAINT'
    WHEN 'FN' THEN 'SQL_SCALAR_FUNCTION'
    WHEN 'FS' THEN 'CLR_SCALAR_FUNCTION'
    WHEN 'FT' THEN 'CLR_TABLE_VALUED_FUNCTION'
    WHEN 'IF' THEN 'SQL_TABLE_VALUED_FUNCTION'
    WHEN 'IT' THEN 'INTERNAL_TABLE'
    WHEN 'K'  THEN 'PRIMARY_KEY'
    WHEN 'P'  THEN 'SQL_STORED_PROCEDURE'
    WHEN 'PC' THEN 'CLR_STORED_PROCEDURE'
    WHEN 'PG' THEN 'PLAN_GUIDE'
    WHEN 'PK' THEN 'PRIMARY_KEY_CONSTRAINT'
    WHEN 'R'  THEN 'RULE'
    WHEN 'RF' THEN 'REPLICATION_FILTER_PROCEDURE'
    WHEN 'S'  THEN 'SYSTEM_TABLE'
    WHEN 'SN' THEN 'SYNONYM'
    WHEN 'SO' THEN 'SEQUENCE_OBJECT'
    WHEN 'SQ' THEN 'SERVICE_QUEUE'
    WHEN 'TA' THEN 'CLR_TRIGGER'
    WHEN 'TF' THEN 'SQL_INLINE_TABLE_VALUED_FUNCTION'
    WHEN 'TR' THEN 'SQL_TRIGGER'
    WHEN 'TT' THEN 'TABLE_TYPE'
    WHEN 'U'  THEN 'USER_TABLE'
    WHEN 'UQ' THEN 'UNIQUE_CONSTRAINT'
    WHEN 'V'  THEN 'VIEW'
    WHEN 'X'  THEN 'EXTENDED_STORED_PROCEDURE'
    ELSE sysobjects.type
    END    ,[Date]=CONVERT(nvarchar, GETDATE(), 101)
FROM    sysobjects
GROUP BY sysobjects.type
HAVING sysobjects.type NOT IN ('S','IT','SQ')
ORDER BY [Type]