Wednesday, September 07, 2011

tsql rename table and column

--rename a table:
EXEC sp_rename 'OldTableName', 'NewTableName'
--rename a column:
EXEC sp_rename
@objname = 'TableName.OldColumnName',
@newname = 'NewColumnName',
@objtype = 'COLUMN'

Friday, September 02, 2011

c# assign values to object property by property name

Class1 obj= new Class1();
string propertyName = "name1";
string objValue = "";
Type type = obj.GetType();
PropertyInfo prop = type.GetProperty(propertyName );
prop.SetValue(obj, objValue , null);

Thursday, September 01, 2011

c# aspnet download file from server side

string text1 = this.Server.MapPath("~/" + [FileFolder]);
if (Directory.Exists(text1))
{
string text2 = text1 + @"\[File Name with extension]";
if (System.IO.File.Exists(text2))
{
FileStream stream1 = new FileStream(text2, FileMode.Open, FileAccess.Read);
byte[] buffer1 = new byte[((int)stream1.Length) + 1];
stream1.Read(buffer1, 0, (int)stream1.Length);
stream1.Close();

//Writes the file out the Response object
Response.Clear();
Response.Buffer = true;
Response.AddHeader("Content-Disposition", "attachment;filename=\"[File Name with extension]\";");
Response.WriteFile(text2, true);
Response.ContentType = "application/x-zip-compressed";
Response.BinaryWrite(buffer1);
Response.End();
}
}

Thursday, August 25, 2011

helpful linq to sql article

http://weblogs.asp.net/scottgu/archive/2007/07/11/linq-to-sql-part-4-updating-our-database.aspx

Wednesday, August 24, 2011

some useful keyboard shortcuts for Visual Studio

found this helpful
http://visualstudiohacks.com/general/confessions-of-a-keyboard-junkie/

Wednesday, August 17, 2011

import from excel c# aspnet

String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + RadUpload.UploadedFiles[0].FileName+";" +
"Extended Properties=Excel 8.0;";
OleDbConnection objConn = new OleDbConnection(sConnectionString);
objConn.Open();
OleDbCommand cmdSelectAdditions = new OleDbCommand("SELECT * FROM [Sheet1$]", objConn);
OleDbDataAdapter AdapterForAdditions = new OleDbDataAdapter();
AdapterForAdditions.SelectCommand = cmdSelectAdditions;
DataSet dsAdditions = new DataSet();
AdapterForAdditions.Fill(dsAdditions);
objConn.Close();

Tuesday, August 16, 2011

aspnet c# generate .pdf

this article helped me, hope it helps you too!
http://www.4guysfromrolla.com/articles/030911-1.aspx

I need to parse HTML into the pdf, the implementation is:

Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=Transactions.pdf");

Response.Cache.SetCacheability(HttpCacheability.NoCache);
Document document = new Document(PageSize.A1, 10f, 10f, 10f, 0f);
PdfWriter.GetInstance(document, Response.OutputStream);

// Open the Document for writing
document.Open();

string documentContent = string.Empty;
document.NewPage();
documentContent = "Confirmation" + "
" + body;
StringReader sr = new StringReader(documentContent);
foreach (object item in HTMLWorker.ParseToList(sr, null).ToList())
{
document.Add((IElement)item);
}

document.Close();

Response.Write(document);
Response.End();

Thursday, August 11, 2011

How to query and display excel data by using ASP.NET, ADO.NET, and Visual C# .NET

found this article very helpful
http://support.microsoft.com/kb/306572/

I modified it a bit to work for me (I am using RadUpload to get the file):

// Create connection string variable. Modify the "Data Source"
// parameter as appropriate for your environment.
String sConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + ruImporter.UploadedFiles[0].FileName+";" +
"Extended Properties=Excel 8.0;";

// Create connection object by using the preceding connection string.
OleDbConnection objConn = new OleDbConnection(sConnectionString);

// Open connection with the database.
objConn.Open();

// The code to follow uses a SQL SELECT command to display the data from the worksheet.

// Create new OleDbCommand to return data from worksheet.
OleDbCommand objCmdSelect = new OleDbCommand("SELECT * FROM [Sheet1$]", objConn);


// Create new OleDbDataAdapter that is used to build a DataSet
// based on the preceding SQL SELECT statement.
OleDbDataAdapter objAdapter1 = new OleDbDataAdapter();

// Pass the Select command to the adapter.
objAdapter1.SelectCommand = objCmdSelect;

// Create new DataSet to hold information from the worksheet.
DataSet objDataset1 = new DataSet();

// Fill the DataSet with the information from the worksheet.
objAdapter1.Fill(objDataset1);



// Clean up objects.
objConn.Close();

Tuesday, June 14, 2011

tsql split full name into firstname and lastname

this script only works with combination of firstname+' '+lastname.

--firstname
SUBSTRING(fullname, 1, CHARINDEX(' ', fullname) - 1) as firstname

--lastname
SUBSTRING(fullname, CHARINDEX(' ', fullname) + 1, LEN(fullname)) as lastname

Tuesday, June 07, 2011

tsql split up a comma seperated string into a table with duplicate records removed

thanks to many similar sources on the web, I came up with my script, it splits up a comma seperated string into a table with duplicate records removed



IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Spliter]') AND type in (N'FN', N'IF', N'TF', N'FS', N'FT'))
DROP FUNCTION [dbo].Spliter
GO
CREATE FUNCTION Spliter(@String varchar(max), @Delimiter char(1))
returns @temptable TABLE (items varchar(max))
as
begin
declare @idx int
declare @slice varchar(8000)
select @idx = 1
if len(@String)<1 or @String is null return
while @idx!= 0
begin
set @idx = charindex(@Delimiter,@String)
if @idx!=0
set @slice = left(@String,@idx - 1)
else
set @slice = @String
if(len(@slice)>0 and (select count(items) from @temptable where items = @slice)=0)
insert into @temptable(Items) values(@slice)
set @String = right(@String,len(@String) - @idx)
if len(@String) = 0 break
end
return
end
GO


SELECT i.items FROM dbo.Spliter(@tempstring,',') AS i where items not in (select comparesource from comparesourcetable)

Thursday, June 02, 2011

Stimulsoft Web Designer restrictions

found these properties quite handy when you want to give end user limited access when designing the report in web browser, especially when you want to hide the connection string credentials.

StiWebDesignerOptions.Dictionary.AllowModifyDictionary = true;
StiWebDesignerOptions.Dictionary.AllowModifyConnections = false;
StiWebDesignerOptions.Dictionary.ShowConnectionType = false;
StiWebDesignerOptions.Dictionary.AllowModifyDataSources = false;
StiWebDesignerOptions.Dictionary.AllowModifyVariables = true;


just put them before swdCustomReport.Design(report); in your code

Monday, May 30, 2011

MS SQL Server Management Studio 2008 cannot save table change

I got this message:
Saving changes is not permitted. The changes you have made require the following tables to be dropped and re-created. You have either made changes to a table that can't be re-created or enabled the option Prevent saving changes that require the table to be re-cretead.

the solution is:
Tools > Options > Designers > Table and Database Designers
unselect 'Prevent saving changes that require the table to be re-created' check box

Wednesday, May 25, 2011

find radtextbox and hide radtextbox in javascript



var rtbName = $find("<%= rtbName.ClientID %>");
rtbName.set_value('Hello World');

Wednesday, May 11, 2011

tsql remove leading zeros in a string that is 10 characters in length

SUBSTRING([TheString], patindex('%[^0]%',[TheString]), 10)

Monday, May 02, 2011

C# get opposite colour of a given colour

public static Color FindeOppositeColor(Color InputColour)
{
return Color.FromArgb(255 - InputColour.R, 255 - InputColour.G, 255 - InputColour.B);
}

Thursday, April 14, 2011

sometimes i need to open radwindow from server side, I use this code snippet from Telerik:


protected void Button1_Click(object sender, EventArgs e)
{
Telerik.WebControls.RadWindow newwindow = new Telerik.WebControls.RadWindow();
newwindow.ID = "RadWindow1";
newwindow.NavigateUrl = "http://www.google.com";
newwindow.VisibleOnPageLoad = true;
RadWindowManager1.Windows.Add(newwindow);
}


the intellisense in Visual Studio 2010 doesn't give me "width" or "height" when i try to see if it is allowed to specifiy size for radwindow. The answer is YES, forget about the intellisense, just type it in, there you are, worked!


newwindow.Width = Unit.Pixel(500);
newwindow.Height = Unit.Pixel(500);
newwindow.Behaviors = WindowBehaviors.Move | WindowBehaviors.Close;

Wednesday, March 30, 2011

internet explorer 8 developer tools window shows in task bar but not showing

what a frustrating 5 minutes....

try Windows key + Up key

enjoy

Tuesday, March 29, 2011

move all contents from one folder to another c#

oldPath and newPath should look like "c:/FolderABC" or "~/FolderABC"


System.IO.Directory.Move(@oldPath, @newPath);

Monday, March 21, 2011

sql shrink log files

found this useful to keep necessary usage of disk space with sql db installed

USE myDatabase
GO
DBCC SHRINKFILE(myDatabase_log, 1)
BACKUP LOG myDatabase WITH TRUNCATE_ONLY
DBCC SHRINKFILE(myDatabase_log, 1)

Tuesday, March 15, 2011

radeditor doesnt open properly when first randered within a grid html edit column

found the solution at:

http://www.telerik.com/community/forums/aspnet-ajax/editor/incorrect-rendering-of-radeditor-when-shown-with-ajax-in-initially-hidden-parent.aspx

Wednesday, February 09, 2011

radgrid integer filter enter text cause error

when I enter a random text instead of an integer into the filter, and select any option in the filter options dropdown, i get error
the solution is kind of tricky:
EnableLinqExpressioins property of grid as false

Tuesday, January 11, 2011

in my radgrid i use template as EditFormType. When I open the edit form for a grid item I want to show or hide a texbos based on the value populated in it. It can be achieved this way:

Protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item is GridEditFormItem && e.Item.IsInEditMode)
{
GridEditFormItem item = (GridEditFormItem)e.Item;
TextBox TextBox1 = (TextBox)item.FindControl("TextBox1");
//OR/// TextBox txtbox = (TextBox)item["TextBox1"].Controls[0];
if (TextBox1.Text == "your value")
{
TextBox1.Visible = false;
}
}
}

Friday, January 07, 2011

radwindow pops up all the time unexpected

I use the following line in code behind to open a radwindow:




During as soon as I opened the window once, any postback will cause this window to popup again.

The solution is simple, just put the following code into page_load event.
RadWindow1.Visible = false;

Wednesday, November 17, 2010

open radwindow using radmenu item click within a template column of radgrid

first, make sure you have "ClientDataKeyNames="Id" " added into the Master Table View of the radgrid

then implement the following javascript:

function OpenRecordBreakdown(Id)
{
var oWnd = radopen("RecordBreakDown.aspx?Id=" + , "rwRecordBreakDown");
oWnd.setSize(900, 600);
oWnd.set_behaviors(Telerik.Web.UI.WindowBehaviors.Move + Telerik.Web.UI.WindowBehaviors.Maximize + Telerik.Web.UI.WindowBehaviors.Resize + Telerik.Web.UI.WindowBehaviors.Close)
oWnd.Center();
}


var lastClickedItem = null;
var clickCalledAfterRadprompt = false;
var clickCalledAfterRadconfirm = false;
function onClientButtonClicking(sender, args) {

if (args.get_item().get_text() == "Delete") {
if (!clickCalledAfterRadconfirm) {
args.set_cancel(true);
lastClickedItem = args.get_item();
radconfirm("Are you sure you want to delete this Item?", confirmCallbackFunction);
}
}

if (args.get_item().get_text() == "Record Breakdown") {
var cell = sender.get_element().parentNode.parentNode;
rowindex = cell.rowIndex; //The row index may vary based on the grid structure.
var grid = $find("<%=rgList.ClientID %>");
var MasterTable = grid.get_masterTableView();
var id = MasterTable.get_dataItems()[rowindex - 2].getDataKeyValue("Id");

OpenRecordBreakdown(id);

args.set_cancel(true);
}
}

function confirmCallbackFunction(args) {
if (args) {
clickCalledAfterRadconfirm = true;
lastClickedItem.click();
}
else
clickCalledAfterRadconfirm = false;
lastClickedItem = null;
}

Thursday, November 11, 2010

Using radprompt and radconfirm with Telerik navigational controls

Found this article very useful, hope it can help you as well

Using radprompt and radconfirm with Telerik navigational controls

http://www.telerik.com/support/kb/aspnet-ajax/window/using-radprompt-and-radconfirm-with-telerik-navigational-controls.aspx

Wednesday, November 10, 2010

open radwindow in codebehind by radcombobox selectedindexchanged event

ScriptManager.RegisterStartupScript(this, typeof(abc_def_1), "openWin", "openWin('" + ParameterId.ToString() + "');", true);

provide you still need the radwindow manager in .aspx code, and the javascript "openWin"

Monday, October 18, 2010

Invalid postback or callback argument. Event validation is enabled using in configuration or <%@ Page EnableEve

"Invalid postback or callback argument. Event validation is enabled using in configuration or <%@ Page EnableEventValidation="true" %> in a page. For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them. If the data is valid and expected, use the ClientScriptManager.RegisterForEventValidation method in order to register the postback or callback data for validation."

in my case it is caused by trying to call a radgrid.rebind() in page_load, the radgrid sits inside of a radupdatepanel. In case of postback the code contains client script which caused this security breach. After I put radgrid.rebind() inside !IsPostBack the error disappearred.

Thursday, September 09, 2010

Persist RadGrid Settings

found this class really helpful:
http://www.telerik.com/help/aspnet-ajax/grdsavingsettingsonperuserbasis.html

Tuesday, August 03, 2010

Friday, July 16, 2010

visual studio 2010 issue referencing usercontrol property from container page

When I tried to reference a public property in user control from a container page, the intellisense doesn't seem to be able to pick up the property. Ignore the red curly underline, build the parent page, it worked~

another VS2010 bug?

Tuesday, June 29, 2010

find column value when updating RadGrid item using EditItemTemplate

if (e.CommandName == RadGrid.UpdateCommandName)
{
GridEditableItem editable = e.Item as GridEditableItem;
int TheId= Convert.ToInt32(editable.OwnerTableView.DataKeyValues[editable.ItemIndex]["TheId"].ToString());

Wednesday, May 05, 2010

asp.net logout user

FormsAuthentication.Signout();

Response.Resirect([loginURL]);

Friday, April 23, 2010

T-SQL loop through all rows in a table to add an incremental value

DECLARE @tempTable table(Id INT NOT NULL PRIMARY KEY)
DECLARE @counter INT
INSERT INTO @tempTable SELECT UserId from TestTable
SET @counter = 1
WHILE (@counter < (SELECT COUNT(UserId) FROM @tempTable)+1)
BEGIN
UPDATE TestTable SET TestColumn = '' WHERE Id = (
SELECT a.Id FROM
(SELECT Id, Row_Number() OVER(ORDER BY UserId) AS 'RN' from TestTable) as a
where a.RN = @counter
)
SET @counter = @counter + 1
END

Wednesday, April 21, 2010

RadGrid wont expand after updated to Q1 2010

This is because the detail table is set to "visible=false" during the update process. Not all RadGrid controls in the application get this symptom, not sure why this happens. All you need to do is to change the setting to "visible = true"

Tuesday, April 20, 2010

T-SQL division

I came cross this this issue of failing to do a division with 2 integer values. Stupid enough......

so In order for the division to work i used CAST(value TO FLOAT)

Monday, April 19, 2010

Setup Radwindow on button in code behind

int tempId= 168;
RadWindow rw = rwmTEMP.Windows[0];
rw.Width = System.Web.UI.WebControls.Unit.Pixel(1000);
rw.Height = System.Web.UI.WebControls.Unit.Pixel(1000);
rw.Behaviors = WindowBehaviors.Move | WindowBehaviors.Close | WindowBehaviors.Maximize | WindowBehaviors.Resize;
rw.OpenerElementID = btnOpenWindow.ClientID;

rw.NavigateUrl = "~/xxxxx/abccc.aspx?TempId=" + tempId.ToString();

Thursday, April 01, 2010

add new line in ajaxToolkit:ConfirmButtonExtender's ConfirmText

use the combination of &,#,10, and ; to create a new line

Friday, February 26, 2010

mssql reset table identity

the following script resets the table identity seeding to 99, the next record will have identity of 100

DBCC CHECKIDENT ("[table name]", RESEED, 99);
GO

Friday, February 12, 2010

Monday, February 08, 2010

RadGrid Export Button does not work

if the buttons are located within a RadAjaxPanel or RadUpdatePanel the button must be registered for postback event. This can be done in aspx or code behind:
C#:
ScriptManager.GetCurrent(Page).RegisterPostBackControl(ExportCSVButton);
ASPX:

Thursday, February 04, 2010

sql how to replace the time value in datetime column

update Table1
SET StartDateTime = CONVERT(datetime,
CONVERT(VARCHAR(10),StartDateTime , 101)
+' '+CONVERT(VARCHAR,datepart(HH,NewStartTime))
+':'+CONVERT(VARCHAR,datepart(MI,NewStartTime))
+':'+CONVERT(VARCHAR,datepart(SS,NewStartTime))
+':'+CONVERT(VARCHAR,datepart(Ms,NewStartTime))
)

Wednesday, February 03, 2010

replace time in datetime value c#

I have 2 datetime values: StartDateTime ('11/01/2010 00:00:00') and NewStartTime('12/02/2010 09:30:00 AM'). I want to replace the time value in StartDateTime with the time value in NewStartTime. In order to achieve so I go:
DateTime NewStartDateTime = new DateTime(StartDateTime.Year, StartDateTime.Month, StartDateTime.Day, NewStartTime.Hour, NewStartTime.Minute, NewStartTime.Second);

System.Web.HttpException: Request is not available in this context

this is caused by using "Request["xxx"]"
a quick fix is to use "HttpContext.Current.Request" instead

Wednesday, January 13, 2010

sql replace substring with value from associated table

Update TableA
set ColumnA1 = (select a.ColumnA from
(
"SELECT" REPLACE("t.ColumnA1, t.ColumnA2", (select "ColumnB1 from TableA where ColumnB2= t.ColumnA2))
FROM TableA t
) a
where TableA.ColumnA2 = a.ColumnA2)
GO

Wednesday, December 16, 2009

RadMenu hide menu item from server side

RadMenu1.FindItemByText("RadMenuItem1").Visible = false;

Tuesday, December 15, 2009

determine whether radscheduler is in edit mode or insert mode

Edit Mode:
"if"(!RadScheduler1.StartEditingInAdvancedForm)

Insert Mode:
"if"(!RadScheduler1.StartInsertingInAdvancedForm)

Thursday, December 10, 2009

asp.net export to txt file receive error in IE when hosted in IIS6

code:

"Response".Clear();
"Response".AddHeader("content-disposition", "attachment;filename=" + FileName + ".txt");
"Response".Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
"Response".ContentType = "application/vnd.text";
"StringWriter" stringWrite = new StringWriter();
"HtmlTextWriter" htmlWrite = new HtmlTextWriter(stringWrite);
"Response".Write(strTXTFileBuilder.ToString());
"Response".End();

Error:
Internet Explorer cannot download file from .
Internet Explorer was not able to open this Internet site. The requested site is either unavailable or cannot be found. Please try again later.

My Solution:
Take out the line "
"Response".Cache.SetCacheability(HttpCacheability.NoCache);"

Wednesday, December 09, 2009

sql check existance before insert

'if' not 'exists' (select .... from .... where ....)
Begin
'Insert' Into ....... (..., ..., ...) values (..., ..., ...,)
END

Thursday, December 03, 2009

rebind parent page control on radwindow close

in the Parent page add into the radwinow aspx code:

sas"<"telerik:radwindow id="rwpopup111" title="popup111" runat="server" behaviors="Close" onclientclose="OnClientClose" navigateurl="popup111.aspx">

also add javascript:

function OnClientClose(oWnd)
{
//place your code to execute, see below for my examples, in this example I rebind a grid:
var hf111 = document.getElementById("");


var masterTable1 = $find("").get_masterTableView();
masterTable1.rebind();

var masterTable = $find("").get_masterTableView();
masterTable.rebind();
//after radwindow close you may lose title of the parent page, if that is the case reset it here:
document.title="abc";

}

Wednesday, October 28, 2009

RadWindow set size and more behaviors from code behind

rw.Width = Unit.Pixel(800);
rw.Height = Unit.Pixel(600);
rw.Behaviors = WindowBehaviors.Move & WindowBehaviors.Maximize & WindowBehaviors.Close;

SQL Server Reporting Services » how to add brackets around a value

question:

1. add brackets around a value

2. display or hide a string depending on a value. e.g. show "IDExists" in a textbox if Fields!ID != null, otherwise hide it

solution:

1. ="MemberID: (" & Fields!ID.Value &")"

2. =IIF (IsNothing(Fields!Id.Value), "","IdExist")

Friday, October 23, 2009

radwindow close window from code behind

http://www.telerik.com/help/aspnet/window/postbackandcloseonreload.html

Thursday, October 15, 2009

cater for sql apostrophe select condition in C#

Filter.Value = "LastName LIKE '" + tbLastNameFilter.Text.Trim().Replace("'", "''") + "%'";

Tuesday, October 13, 2009

How to remove duplicate rows from a table in SQL Server

http://support.microsoft.com/kb/139444

The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine

http://blog.crowe.co.nz/archive/2007/04/16/728.aspx

http://geekswithblogs.net/wpeck/archive/2009/04/30/quotthe-microsoft.jet.oledb.4.0-provider-is-not-registered-on-the-local-machine.quot.aspx


http://www.telerik.com/support/kb/aspnet-ajax/general/error-on-64-bit-windows-machines-the-microsoft-jet-oledb-4-0-provider-is-not-registered-on-the-local-machine.aspx

Turn Off “Saving Auto Recovery information” in Microsoft SQL Server Management Studio 2008

http://blog-mstechnology.blogspot.com/2009/06/turn-off-saving-auto-recovery.html

All Sample Connection String for All database using C#.Net and VB.Net

found this one useful

http://www.dotnetspider.com/resources/28823-All-Sample-Connection-String-for-All-database.aspx

Saturday, October 10, 2009

Saturday, October 03, 2009

datagridview checkbox column unable to fetch current row check status

need to use "datagridview1.EndEdit()" in "datagridview1_CellContentClick" event to finalize the editing of current row so that the changes made to the current row (in this case the change of check status) is submitted

Wednesday, September 30, 2009

oledbconnection problem "Unrecognized escape sequence....."

cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\ temp\\abc.mdb;User Id=admin;Password=;");
or
cn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\temp\ abc.mdb;User Id=admin;Password=;");

Sunday, September 27, 2009

Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine --------- dev error on vista x64 machine

this is because the driver is not x64. Solution: in project properties --> Build, select x86 in Platform Target

what's the status of a form after form1.show() and form1.hide() - Visual Studio 2008 Windows Form Application

in windows form application you can use Application.OpenForms collection to find the forms opened

Thursday, September 24, 2009

TSQL check if a view exists before create it

IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE TABLE_NAME = 'vw_abc')
DROP VIEW [dbo].[vw_abc]

Thursday, August 06, 2009

Monday, August 03, 2009

C# ASP.NET use StringBuilder to export a txt file


StringBuilder strAAA = new StringBuilder();
foreach (DataRow drABC in datatableDEF.Rows)
{
strAAA.Append(drABC["xxxxx"]);
strAAA.Append(drABC[" "]);
strAAA.Append(drDEF["yyyyy"]);
strAAA.Append(drABC[" "]);
strAAA.Append(drGHI["zzzzzz"]);
strAAA.Append(drABC[" "]);
}

//end current line and start a new line
strAAA.AppendLine();
Response.AddHeader("content-disposition", "attachment;filename=ABC.txt"); Response.Charset = ""; Response.Cache.SetCacheability(HttpCacheability.NoCache); Response.ContentType = "application/vnd.text"; StringWriter stringWrite = new StringWriter(); HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); Response.Write(strAAA.ToString()); Response.End();

Thursday, July 30, 2009

sql get date within a datetime value

SELECT CONVERT(VARCHAR(10),GETDATE(),111)

--> returns 2009/07/30

SELECT CONVERT(VARCHAR(4),GETDATE(),111)
--> returns 2009

Friday, July 24, 2009

RadGrid allocate checkbox control within detailtable


the master table row must be expanded to open the detailtable before the value of the control can be accessed:



Monday, July 06, 2009

lost designer.aspx in asp.net web application

to fix it, right click on the aspx page in solution explorer and select Convert to Web Application"

RadGrid: rebind detailtable after command execution

e.Item.OwnerTableView.Rebind();

this only rebinds the detailtable, so the current expanding status will remain.

Friday, July 03, 2009

fetch the record primary key from MasterTable while using FormTemplate for insert and update

when you have a FormTemplate for insert and update in RadGrid.MasterTable, there is no commangArgument, therefore the record's primary key can not be passed on using commandargument.


This can be done by

protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e)
{
if (e.CommandName == "Update")
{
int RecordId= Convert.ToInt32(RadGrid1.MasterTableView.DataKeyValues[e.Item.ItemIndex]["RecordId"].ToString());
}
}

Thursday, July 02, 2009

RadGrid: rebind detailtable from external event

protected void ReBindExpandedDetailTable()
{
foreach (GridDataItem item in RadGrid1.Items)
{
string aaaValueString= item.GetDataKeyValue("aaa").ToString();

if (aaaValueString== )
{
if (item.Expanded == true)
{
GridTableView nestedView = ((GridDataItem)item).ChildItem.NestedTableViews[0];
nestedView.Rebind();
}
}
}
}

RadGrid: hide add new and refresh buttons from code behind

protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item is GridCommandItem)
{
GridCommandItem cmditm = (GridCommandItem)e.Item;
//to hide AddNewRecord button
cmditm.FindControl("InitInsertButton").Visible = false;//hide the text
cmditm.FindControl("AddNewRecordButton").Visible = false;//hide the image

//to hide Refresh button
cmditm.FindControl("RefreshButton").Visible = false;//hide the text
cmditm.FindControl("RebindGridButton").Visible = false;//hide the image


}
}

RadGrid: problem displaying bool value in formtemplate type edit form insert mode

I was able to update any records in the grid. However when I clicked on Add New Record, I received an error "specified cast is not valid" on the boolean field "IsActive".

see code below for my ASPX page content


The solution is:

protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e)
{


if (e.CommandName == RadGrid.InitInsertCommandName)
{
GridEditCommandColumn editColumn = (GridEditCommandColumn)rgQualificationList.MasterTableView.GetColumn("EditCommandColumn");
editColumn.Visible = false;

e.Canceled = true;
//Prepare an IDictionary with the predefined values
System.Collections.Specialized.ListDictionary newValues = new System.Collections.Specialized.ListDictionary();

//set initial checked state for the checkbox on init insert
newValues["IsActive"] = false;

//Insert the item and rebind
e.Item.OwnerTableView.InsertItem(newValues);
}

Wednesday, July 01, 2009

Display RadGrid row details in AjaxToolkit ModalPopupExtender

found this code library useful
http://www.telerik.com/community/code-library/aspnet-ajax/grid/display-radgrid-row-details-in-ajaxtoolkit-modalpopupextender.aspx

Thursday, June 18, 2009

show or hide nested table views RadGrid SP1 Q1 2009

protected void ShowOrHideNestedTableView()
{
foreach (GridDataItem CS in rgABC.Items)
{

if (CS.OwnerTableView.Name == "AAA")
{
if (cb123.Checked)
{
CS.Parent.Visible = true;
CS.Visible = true;
}
else
{
CS.Parent.Visible = false;
CS.Visible = false;
}
}

}
}

protected void rgScheduleList_PreRender(object sender, EventArgs e)
{
ShowOrHideNestedTableView();
}

Wednesday, June 17, 2009

aspx c# open new window in button click event when the button is placed inside an ajax update panel

val1 is an integer
val2 is a boolean

System.Text.StringBuilder sb = new System.Text.StringBuilder();
sb.Append("window.open(abc.aspx?val1=" + val1Value.ToString() + "');");
ScriptManager.RegisterClientScriptBlock(this.upd1, this.upd1.GetType(), "abc", sb.ToString(), true);

aspx passing on multiple parameter values in URL

val1 is an integer
val2 is a boolean


in page 1:

aspx:

c#:
RadAjaxManager.GetCurrent(Page).ResponseScripts.Add("xxx('" + val1+ "',true);");

in page 2
c#
if (!string.IsNullOrEmpty(Request["val2"]))
{
if (bool.Parse(Request["val2"]))
----logic here---------
}


if (!string.IsNullOrEmpty(Request["val1"]))
{
if (int.Parse(Request["val1"])>0)
----logic here---------
}

Thursday, June 04, 2009

COALESCE

use COALESCE to manage a nullable db value, reference:
http://msdn.microsoft.com/en-us/library/ms190349.aspx

Monday, May 25, 2009

Error: Could not load file or assembly 'Telerik.Web.UI, Version=2009.1.402

Error: Could not load file or assembly 'Telerik.Web.UI, Version=2009.1.402.X, Culture=neutral, PublicKeyToken=XXXX' or one of its dependencies

Found some useful sources here:

This is the one helped me to solve my problem

Another one here

one more

Another one here Here

Friday, May 22, 2009

making radgrid filters case insensitive

GroupingSettings-CaseSensitive="false"

Friday, May 01, 2009

locate and hide BoundField in gridview asp.net c#



protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (Convert.ToString(DataBinder.Eval(e.Row.DataItem, "ABC")) == "Text To Be Found")
e.Row.Visible = false;
}
}

Friday, April 17, 2009

RadGrid hide column in export

RadGrid1.MasterTableView.Columns.FindByUniqueName("ABC").Visible = false;

sorting problem - RadGrid GridTemplateColumn

my code that has problem sorting template columns:



the instruction says "the SortExpression value should match the data field you want to sort on (typically the field a control in the template is bound to)". I made sure this rule is applied but the problem remained. Then I removed the HeaderTemplate components, instead I added value to HeaderText property in the GridTemplateColumn level. This solved the problem, not sure why though.....

the new code looks like:
...........
.......

Wednesday, April 15, 2009

RadGrid Insert UserControl does not close automatically after insert

use the following code below, make sure the CommandName on the Insert Button on the UserControl is named "PerformInsert"
protected void ABC_ItemCommand(object source, Telerik.Web.UI.GridCommandEventArgs e) 
{  
if (e.CommandName == "PerformInsert")  
{  
//make sure the insert user control closes automatically after inserted
e.Item.OwnerTableView.IsItemInserted = false;  
}

Tuesday, April 14, 2009

ASP.NET How to deal with the message: error connecting to undo manager of source file "........"

* Delete the .designer.cs file
* convert the .aspx or ascx file into a webapplication by right clicking on it

Checked=' < % # DataBinder.Eval( Container, "DataItem.Active" ) % >'

C# Convert String to Guid

Guid ProductID = new Guid(String)

Friday, April 03, 2009

pre-populate value into RadGrid Insert



protected void RadGrid1_ItemCommand(object source, GridCommandEventArgs e)
{
if (e.CommandName == RadGrid.InitInsertCommandName)
{
//enter the code here
}
}
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
if (e.Item is GridEditFormInsertItem && RadGrid1.MasterTableView.IsItemInserted)
{
GridEditFormInsertItem insertItem = (GridEditFormInsertItem)e.Item;
(insertItem["abc"].Controls[0] as TextBox).Text = "hello world";
}
}

Monday, February 16, 2009

Visual Studio 2005 bug in ASP.NET applications

my web.config has multiple connection strings.
when I right click on a table adapter in a dataset in design view, select "configure...", the dataset configuration window pops up. Naturally you'd just make the changes that you want to the query and click on Finish. If this table adapter doesn't use the first connection string listed in the web.config, visual studio will automatically change the connection string to the first one listed in the web.config.

In order to fix the problem when you first open up the configuration window click on Previous to go back to the connection string selection view, RESELECT the connection string. If you happened to encounter this error until this stage right click on the empty area of the dataset design view and select View Code. Then delete the unused connection string.

Wednesday, February 04, 2009

ipconfig not working in cmd mode - Vista issue

when i tried to enter ipconfig in cmd mode it says: not valid command.

the solution is: right click on the cmd program and select "run as administrator".

why couldn't Vista run my programs as administrator when i logged in as administrator? this is stupid!

Tuesday, December 23, 2008

Compare mobile phone Cap Plans

found this tool very useful
http://www.mobchoice.com.au/compare-cap-plans-spreadsheet

Wednesday, December 10, 2008

string.format new line partially works (C#, ASP.NET)

see below my code. every "\n" works fine except the ones after "Event: {0}" and "Start Date: {1:D}", basically the Event, Start Date and End Date are printed on same line. can anyone help please? thanks in advance.

string.Format(



"Schedule Details: \n" +

"Event: {0}\n"+


"Start Date: {1:D} \n" +

"End Date: {2:D} \n" +

"Location: {3} \n"


,schedule.event,
schedule.startDate,
schedule.endDate,
schedule.location);

I tried ""Event: {0}"+ Environment.NewLine" and "Event: {0}\r" and "Event: {0}/r/n" got the same result
==============

Schedule Details:

Event: Basketball Match Start Date: Friday, 1 May 2009 End Date: Tuesday, 30 June 2009

Location: Como
================

Then I tried "Event: {0}\n"+ Environment.NewLine" and "Event: {0}\r"+ Environment.NewLine" and "Event: {0}/n/r" got this result (an additional line)
==============


Schedule Details:

Event: Basketball Match

Start Date: Friday, 1 May 2009 End Date: Tuesday, 30 June 2009

Location: Como
================

It seems that it works either for no newline or 2 new lines, but not for 1 newline. I tried to take out "Event" everything else worked just fine, so the problem must be with "Event"?

The Event has datatype of "string", startDate and endDate are datetime, location is string. A sample of Event value is "Attend Class Certificate III in Basketball".

Eventually the problem is solved, not sure why though.....:

I put single quotes around the Event value, not sure how exactly but it worked.
"Event: '{0}'\n"+

Tuesday, August 05, 2008

select checkboxlist based on to database data

foreach(datarow in the query result)
{

ListItem currentCheckBox = CheckBoxListABC.Items.FindByValue(datarow ["TheFieldName"].ToString());
if (currentCheckBox != null)
{
currentCheckBox.Selected = true;
}
}

Monday, August 04, 2008

ASP.NET C# capitalize the first letter of a string

using System.Globalization;
..
..
..
..
..
string ManipulatedString= CultureInfo.CurrentCulture.TextInfo.ToTitleCase("OriginalString");

Saturday, August 02, 2008

"postback" event not related to REVIOUS and NEXT button on Internet Explorer?

in my case PageA has a buttonA that opens PageB. The code is "response.redirect("PageB.aspx");"

on PageB I have some methodM to call under condition "if (!IsPostBack)"

After I clicked on ButtoA to open PageB, methodM is trigerred.

but when I use the PREVIOUS button on Internet Explore to go back to PageA and click on NEXT button to go back to PageB the methodM didn't fire.

How can I catch the Previous and Next button click event?

the answer is adding the code below into Page_Load in the target page, this line of code will force the target page to load from server instead of cache

Response.Cache.SetCacheability(HttpCacheability.NoCache);

Wednesday, July 30, 2008

a helpful tutorial for Creating a Data Access Layer in VS2005 Express

http://www.asp.net/learn/data-access/tutorial-01-cs.aspx

How to retrieve visitor's IP in C# ASP.NET 2.0

string strHostName = System.Net.Dns.GetHostName();
string clientIPAddress = System.Net.Dns.GetHostAddresses(strHostName).GetValue(0).ToString();
return clientIPAddress;

Friday, July 25, 2008

MSSQL LIKE operator work with parameter values

without parameter: LIKE '%abc%'
with parameter: LIKE '%'+@searchString+'%'