torsdag 3 september 2009

Disable button on click

In your sourcefile (VB):
btnSubmit.Attributes.Add("onclick", "this.disabled=true;" + ClientScript.GetPostBackEventReference(btnSubmit, "").ToString())

fredag 31 juli 2009

Add Parameter in NavigateURL

NavigateUrl='<%# Eval("Id", "Details.aspx?id={0}") %>'

torsdag 16 juli 2009

Findcontrol in Datalist

For VB
CType(DataList1.Items(0).FindControl("myImageControl"), Image)

So go for
Dim myImageControl as Image = CType(DataList1.Items(0).FindControl("myImageControl"), Image)


So you can go through the datalist

måndag 13 juli 2009

Add Kurdish, Arabic values to SQL Server (asp.net)

So I created this stored procedure on SQL server that gets values from a Kurdish Sorani text (unicode) and inserts them into the datebase.

After some tests, the values wore inserted as ???????? instead of real کوردستان

Here is a simple solution

1. Change the fields in your table from varchar -> nvarchar, text -> ntext
2. Modify in properties for the column / Table designer / Collation -> Arabic
3. Add N next to all your SQL parameters as:

Exec spSendKurdishText "& intRandomNr & ", N'" & strKurdishString &"'

it looks like N'" or something but it is not, just add N to your parameter and since your parameter is string you obviously need '"

måndag 25 maj 2009

Få id från din senaste INSERT - SQL

Detta gäller bara SQL Server 2000 och uppåt.


CREATE PROCEDURE [dbo].[spCreateNewAccount]

@Name VARCHAR(255),

@Email VARCHAR(255),

@accountID INT OUTPUT

AS

BEGIN

INSERT INTO dbo.Account([Name], Email)

VALUES (@Name,@Email)

SET @accountID= CAST(SCOPE_IDENTITY() AS INT)

END
-------------
@accountID INT OUTPUT --- OUTPUT för att få ut id
SCOPE_IDENTITY() för att hämta senaste inlagda record i denna sats.

måndag 20 april 2009

Validera e-post som SQL funktion i mySQL

Ett av de många coola grejer som mySQL har är faktiskt att man kan använda RegExp i dess funktioner. Så istället för att skriva koden på din sida kan du fixa funktioner som validera e-poster direkt i mySQL. Så här kan vi validera e-post adresser

Koden:

DELIMITER $

DROP FUNCTION IF EXISTS `myDatabas`.`validateEmail` $$

CREATE FUNCTION `validateEmail`(t_email varchar(64)) RETURNS tinyint(1)

BEGIN

CASE
WHEN NOT (SELECT t_email REGEXP '^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$')
THEN
-- om e-posten är fel
RETURN FALSE;
ELSE
-- pm e-posten är coolt
RETURN TRUE;
END CASE;

END $$

DELIMITER ;


Om e-post adressen är okej, får vi 1 annars får vi bara 0 förstås.

Jag använder just denna funktion för en nyhetsbrevs utskick som jag har gjort med .NET och så här ser min SQL-sats ut (förkortat för enkelhetensskull).

SELECT DISTINCT(email) FROM people WHERE validateEmail(email)=1

fredag 3 oktober 2008

Istället för TOP SELECT i Stored Procedure

Tänk om du vill få ut bara ett antal artiklar i nyhetsdatabas. I Stored Procedure är det relativ enkelt.


...
CREATE PROCEDURE db.nyheter
@antalnyheter
AS
BEGIN
SET ROWCOUNT @antalnyheter
SELECT * FROM nyheter
ORDER BY idnyheter DESC
END
GO


Finns mer här