Monday 28 October 2013

Login Function With Query ASP.Net

Untuk membuat fungsi login yang harus diperhatikan adalah koneksi dan apakah pencarian dengan username dan password ditemukan atau tidak. setelah itu mau apa kita apakan setelah login berhasil dan gagal. semuanya dapat kita bentuk dalam kode berikut ini :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
        protected void loginAction(string username, string password) {

            string strConnection = System.Configuration.ConfigurationManager.ConnectionStrings["namakoneksi"].ConnectionString;
            SqlConnection sqlConn = new SqlConnection(strConnection);
            sqlConn.Open();
            SqlCommand sqlCmd = new SqlCommand("select * from Users where username=@username and password=@password", sqlConn);
            sqlCmd.CommandType = CommandType.Text;
            sqlCmd.Parameters.AddWithValue("@username", username);
            sqlCmd.Parameters.AddWithValue("@password", password);
            SqlDataReader reader = sqlCmd.ExecuteReader();
            if (reader.HasRows)
            {
                reader.Read();
                Session["username"] = reader["username"].ToString();
                Response.Redirect("WebForm1.aspx");
            }
            else { 
                //lakukan apa ketika kondisi tidak di temukan
            }
        }

Sunday 27 October 2013

Zipping With Ionic.zip And TransmitFile in ASP.Net

Men-Zip file yang di lakukan oleh web berguna saat kita akan memberikan file dalam jumlah yang banyak, Zip disini berguna agar kita mendownloadnya hanya satu kali. dll yang penulis gunakan saat ini adalah ionic.zip.dll , yang dapat di download di link Ionic ini. Setelah didownload, maka langkah selanjutnya adalah memasukan reference Ionic.zip tersebut kedalam project kita.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//import librarynya kedalam project 
using Ionic.Zip;
string path = Server.MapPath("NamaPathFolder/File");
string[] filenames = Directory.GetFiles(path);
string ZipPath = Server.MapPath("NamaPathZipYangakanDisimpan");
using (ZipFile zip = new ZipFile())
{
 try
 {
  zip.AddFiles(filenames, "NamaFolder");
  //save zip filezip.Save(ZipPath);
  Response.Clear();
  //kirim sebagai responseResponse.ContentType = "Application/zip";
  Response.AppendHeader("content-disposition", "attachment; filename=NamaFileZip-nya");
  Response.TransmitFile(ZipPath);
  Response.Flush();
 }
 finally
 {
  //delete file yang tidak terpakai System.IO.File.Delete(ZipPath);
  string[] files = Directory.GetFiles(NamaFolder/File);
  foreach (string file in files)
  {
   File.SetAttributes(file, FileAttributes.Normal);
   File.Delete(file);
  }
  //delete directory Directory.Delete(NamaFolder/File);
  Response.End();
 }
}

Thursday 24 October 2013

Create Dynamic Item Checkbox on ASPxDropDownEdit DevExpress ASP.Net

DropdownEdit adalah satu control yang disediakan DevExpress agar kita dapat meng-Customize isi dropdownnya, seperti mengisinya dengan checkbox, jadi bisa kita gunakan untuk multipe choice.
langkah yang harus di lakukan adalah memasukan contol ke UI kita dan menambahkan dropdown template didalam ASPxDropDownEdit kita.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<body>
    <form id="form1" runat="server">
    <!--berikan instance name agar dapat dikenali di javascript-->
    <dx:ASPxDropDownEdit ID="ASPxDropDownEdit1" runat="server" ClientInstanceName="checkComboBox">
        <DropDownWindowTemplate>
            <dx:ASPxListBox Width="100%" ID="listBox" ClientInstanceName="checkListBox" SelectionMode="CheckColumn" runat="server">
                <!--berikan perintah apabila selected indexnya berubah-->
                <ClientSideEvents SelectedIndexChanged="OnListBoxSelectionChanged" />
            </dx:ASPxListBox>
        </DropDownWindowTemplate>
    </dx:ASPxDropDownEdit>
    </form>
</body>

selanjutnya adalah mengisi listbox nya dengan data yang kita mau, hal itu kita lakukan pada code behind form yang sedang dikerjakan

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
    public partial class WebForm1 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            // membuat wadah listdata
            List<ItemData> data = new List<ItemData>();
            for (int i = 0; i < 100; i++)
            {
                // membuat isi data dengan object itemdata
                data.Add(new ItemData(i.ToString()));
            }
            //mencari listbox, yang ada di dalam dropdown template dari aspxdropdownedit1
            ASPxListBox lstbx = (ASPxListBox)ASPxDropDownEdit1.FindControl("listbox");
            lstbx.DataSource = data;
            lstbx.TextField = "RegionName";
            lstbx.ValueField = "RegionName";
            lstbx.DataBind();
        }
    }

    //object data
    public class ItemData
    {
        string regionName;
        public ItemData(string regionName)
        {
            this.regionName = regionName;
        }
        public string RegionName
        {
            get { return regionName; }
        }
    }

sampai disini sudah dapat terlihat bahwa dropdown akan terisi checkbox sebanyak 100 buah, langkah selanjutnya adalah memasukan pilihan ke dalam kolom terpilih dari aspxdropdownedit tersebut dengan bantuan javascript.


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
<script type="text/javascript">
    // <![CDATA[
    var textSeparator = ", ";
    function OnListBoxSelectionChanged(listBox, args) {
        if (args.index == 0)
            args.isSelected ? listBox.SelectAll() : listBox.UnselectAll();
        UpdateSelectAllItemState();
        UpdateText();
    }
    function UpdateSelectAllItemState() {
        IsAllSelected() ? checkListBox.SelectIndices([0]) : checkListBox.UnselectIndices([0]);
    }
    function IsAllSelected() {
        var selectedDataItemCount = checkListBox.GetItemCount() - (checkListBox.GetItem(0).selected ? 0 : 1);
        return checkListBox.GetSelectedItems().length == selectedDataItemCount;
    }
    function UpdateText() {
        var selectedItems = checkListBox.GetSelectedItems();
        checkComboBox.SetText(GetSelectedItemsText(selectedItems));
    }
    function SynchronizeListBoxValues(dropDown, args) {
        checkListBox.UnselectAll();
        var texts = dropDown.GetText().split(textSeparator);
        var values = GetValuesByTexts(texts);
        checkListBox.SelectValues(values);
        UpdateSelectAllItemState();
        UpdateText(); // for remove non-existing texts
    }
    function GetSelectedItemsText(items) {
        var texts = [];
        for (var i = 0; i < items.length; i++)
            if (items[i].index != 0)
                texts.push(items[i].text);
        return texts.join(textSeparator);
    }
    function GetValuesByTexts(texts) {
        var actualValues = [];
        var item;
        for (var i = 0; i < texts.length; i++) {
            item = checkListBox.FindItemByText(texts[i]);
            if (item != null)
                actualValues.push(item.value);
        }
        return actualValues;
    }
</script>

Tuesday 22 October 2013

Count Workdays Between 2 Dates in T-SQL

Untuk menghitung hari kerja di SQL server dapat di gunakan fungsi sebagai berikut, dimana sabtu dan minggu tidak kita ikut sertakan dalam perhitungannya :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
DECLARE @tanggalDari DATETIME
DECLARE @tanggalSampai DATETIME
SET @tanggalDari = '2013/10/01'
SET @tanggalSampai = '2013/10/31' 

SELECT
((DATEDIFF(dd, @tanggalDari , @tanggalSampai ) + 1)
-(DATEDIFF(wk, @tanggalDari , @tanggalSampai ) * 2)
-(CASE WHEN DATENAME(dw, @tanggalDari ) = 'Sunday' THEN 1 ELSE 0 END)
-(CASE WHEN DATENAME(dw, @tanggalSampai ) = 'Saturday' THEN 1 ELSE 0 END)) AS WorkDays

Save Image Into Sql Server From ASP.Net

Ada beberapa alternatif jika kita ingin menyimpan image di database, yang pertama adalah dengan menyimpannya langsung sebagai binary data atau kita hanya menyimpan linknya saja di database.
yang akan di bahas kali ini adalah cara menyimpan image di SQL-server lewat behind code ASP.net.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
//buat table pada database sql server
CREATE TABLE [dbo].[TestUploadImage](
[id] [int] IDENTITY(1,1) NOT NULL,
[name] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[images] [varbinary](max) NULL,
CONSTRAINT [PK_TestUploadImage] PRIMARY KEY CLUSTERED 
(
[id] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]


1
2
3
4
5
6
7
8
//rubah image menjadi bentuk array byte
byte[] imageData = ReadFile(path-imagenya);
SqlConnection conn = new SqlConnection(koneksi-database-nya);
SqlCommand SqlCom = new SqlCommand("INSERT INTO dbo.TestUploadImage( name, images ) VALUES ( 'image pertama', @imgByte)", conn);
SqlCom.Parameters.Add(new SqlParameter("@imgByte", (object)imageData));
conn.Open();
SqlCom.ExecuteNonQuery();
conn.Close();

Friday 18 October 2013

Login With Facebook API In Our Web Application

Banyak orang yang diuntungkan dengan hadirnya facebook, selain sebagai media sosial facebook juga banyak sekali digunakan untuk bermacam-macam kepentingan, seperti halnya periklanan, pengembangan, ataupun sarana yang lainnya. Untuk kali ini penulis ingin berbagi tentang layanan facebook yang bisa kita ambil keuntungannya, yaitu adalah Login Facebook API. Singkatnya adalah, kita menggunakan authentifikasi user dengan mengambil login dari facebook untuk aplikasi web yang kita buat, jadi kita tidak usah repot-repot membuat database user untuk menyimpan data detail user diaplikasi kita. langkahnya sebagai berikut :

  • 1. Login terlebih dahulu di https://developers.facebook.com
  • 2. Menuju ke menu App dan daftarkan sebagai developer
  • 3. Buat aplikasi baru dengan klik create new app, isi appication name
Create New App
Create New App
  •  4. Setelah itu akan muncul dashboard dari application yang kita daftarkan, beserta ID dan kode rahasianya  pada dashboard ada beberapa yang harus kita isi secara benar, yaitu adalah "App Domain" dan "Website With Facebook Login". Isi keduanya dengan domain dimana aplikasi web kita berada, misalnya "http://localhost/FB-API/index.html" nanti secara otomatis akan menjadi "localhost".
Dashboard Web Application
Dashboard Facebook Appication
  • 5. langkah selanjutnya adalah menyiapkan halaman login tersebut. didalam contoh yang kita masukan adalah ada pada index.html
untuk kode HTML-nya : 

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
<html>
<head>

<!-- load main library JQuery-->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>

<!-- load facebook API -->
<script src="//connect.facebook.net/en_US/all.js"></script>

</head>
<body>

<!-- facebook button -->
<fb:login-button show-faces="true" width="200" max-rows="1"></fb:login-button>;

</body>
</html>

dan untuk kode javascript-nya :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<!--javascript untuk authentifikasi aplikasi kita dengan aplikasi yang di daftarkan di facebook-->
<script>
//load SDK facebook-nya
(function(d){
 var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
 if (d.getElementById(id)) {return;}
 js = d.createElement('script'); js.id = id; js.async = true;
 js.src = "//connect.facebook.net/en_US/all.js";
 ref.parentNode.insertBefore(js, ref);
}(document));

//initialize awal dan pengecekan ID applikasi
window.fbAsyncInit = function() {
 FB.init({
 appId : 'xxxxxxxxxxxxxxx', // App ID
 channelUrl : 'http://localhost/FB-API/index.html', // Channel
 Filestatus : true, // cek login
 statuscookie : true, // enable cookies to allow the server to access the
 sessionxfbml : true // parse XFBML
 });

 //kondisi authentifikasi apabila user terdaftar atau tidak 
 FB.Event.subscribe('auth.authResponseChange', function(response) {
 //status apabila sudah valid atau belum
 if (response.status === 'connected') {
  //fungsi setelah login valid
  testAPI();
 } else if (response.status === 'not_authorized') {
  FB.login();
 } else {
  FB.login();
 }
 });
};

//fungsi setelah login valid
function testAPI() {
 console.log('Welcome! Fetching your information.... ');
 FB.api('/me', function(response) {
  console.log('Good to see you, ' + response.name + '.');
 });
}
</script>

  • 6. Lalu save, apabila aplikasi berhasil maka button login dari facebook akan muncul di aplikasi kita 
Facebook Login Button
Facebook Login Button
Facebook Login form popup
Facebook Login form popup
Success facebook login
Success facebook login

Thursday 10 October 2013

Create Report And Fill Filterstring Report ASP.Net

Ada beberapa cara untuk memfilter isi report yang ada di ASP.Net, cara tersebut antara lain

  • Filter Parameter Storeprocedure, langsung memfilternya dari query SQL-nya, memasukan parameter langsung ke StoreProcedure dan report secara langsung menerima data bersih yang sudah ter-filter dari stroprocedure tersebut
  • Filterstring Report, Report di ASP.Net telah menyediakan fasilitas yang berupa Filterstring, jadi pengaturan data mana saja yang akan di tamplikan di report, konfigurasinya di lakukan di report ASP.netnya, dengan memasukan filterstringnya tersebut.

FilterString disini dilakukan pada dataBinding report viewer. Berikut contoh dengan Filterstring ASP.Net :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
protected void ReportViewer1_DataBinding(object sender, EventArgs e)
{
 bindGridView();
}

protected void bindGridView(){ 
 //create report baru ReportViewer.Report = null;
 EmployeeReport EReport = new EmployeeReport();
 
 //pengisian parameter,disini di contohkan memiliki 3 parameter report
 EReport.Paramcompany.Value = "PT. KodeKodeKode";
 EReport.ParamDateFrom.Value = dateFrom.Value;
 EReport.ParamDateTo.Value = dateTo.Value; 

 //pengisian filter string string filterString = "";
 filterString = "([Company] = ?Paramcompany) And " +
 "([Date] Between(?ParamDateFrom, ?ParamDateTo))";

 EReport.FilterString = filterString; 
 
 //tampilkan report di report viewer 
 ReportViewer1.Report = EReport;
}

Tuesday 8 October 2013

Import Excel Data To DataTable ASP.Net

Untuk Membaca data excel dari luar, dan meng-importnya ke datatable ASP.net, yang kita perlukan adalah sebuah koneksi, dimana koneksi tersebut akan membuka jalan kita untuk melakukan query didalam data excel. Berikut ini adalah contoh 3 koneksi yang berbeda tergantung kepada ekstensi file Excelnya :
akan ada sedikit masalah apabila nanti website kita di hosting, dan server tidak memiliki office

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
//get ekstensi
string strFileType = Path.GetExtension(FileName).ToLower();
//penentuan koneksi berdasarkan ekstensi
if (strFileType.Trim() == ".xls")
{
   connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="file-path-nya"; Extended Properties='Excel 8.0;HDR={1}'";
}
else if (strFileType.Trim() == ".xlsm")
{
   connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="file-path-nya";Extended Properties='Excel 12.0 Macro;HDR=YES'";
 }
 else if (strFileType.Trim() == ".xlsx")
{
   connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="file-path-nya";Extended Properties=Excel 12.0;";
 } 
//pembukaan connection string
OleDbConnection conn = new OleDbConnection(connString);
 if (conn.State == ConnectionState.Closed)
    conn.Open(); 
//query untuk mengambil data dari excel berdasarkan nama sheet
DataSet Ds = new DataSet();
OleDbDataAdapter dAdapter = new OleDbDataAdapter("select * from ["nama-sheet"$]", conn);
 dAdapter.TableMappings.Add("Table", "Excel");
 dAdapter.Fill(Ds);
 DataTable Dt = new DataTable();
 Dt = Ds.Tables[0];

Monday 7 October 2013

Job Scheduler in SQL Server

Jobs Schedule adalah suatu service yang di sediakan oleh SQL Server yang digunakan untuk pengeksekusian suatu job secara otomatis, job yang dilakukan contohnya adalah pengeksekusian storeprocedure atau sebuah query, dalam contoh nyatanya adalah pengkopian data dari bulan lalu ke bulan sekarang secara otomatis yang berjalan setiap awal bulan di tanggal 1. Langkah pembuatannya adalah sebagai berikut : 
    Login SQL Server (kodekodekode.blogspot.com)
    1. Login SQL Server


SQL Server Agent (kodekodekode.blogspot.com)
2.SQL Server Agent - menuju ke SQL Server Agent > Jobs


New Job (kodekodekode.blogspot.com)
3.New Jobs - klik kanan pada jobs dan pilih New Job

Job Properties (kodekodekode.blogspot.com)
4. Properties Jobs - isi semua yang berhubungan dengan jobs-nya, mulai dari nama sampai description


Step (kodekodekode.blogspot.com)
5. Steps - masukan step baru di tab Step dengan cara klik New


Step Properties (kodekodekode.blogspot.com)
6. Properties Steps - isi properties step-nya Nama, Tipe, Database, dan juga isi Command-nya. Contoh diatas adalah contoh pengeksekusian storeprocedure

schedule (kodekodekode.blogspot.com)
7. Schedule - Pada kolom schedule buat schedule baru dengan mengklik new

Schedule Properties (kodekodekode.blogspot.com)
8. Properties Schedule - set pengaturan schedule disini, isi nama schedule, biarkan tipenya Recuring dan atur waktunya, kapan kita ingin job ini berjalan dan klik ok




Saturday 5 October 2013

Create Audio Player With HTML 5 And Jquery

HTML 5 sudah menyediakan layanan untuk audio player, dimana kita dapat membuat suatu player dengan mudah di website kita sendiri, selain itu kita juga dapat mengkontrol dengan bantuan Jquery, beriukut ini adalah contoh kodenya : 

<html>
<head>
<title>KodeKodeKode Player</title>

<!-- load library dari jquery -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>

<!-- customize tampilan player -->
<style>
.player-doom{
width: 300px;
height: 30px;
background-color: rgb(22, 21, 21);
border-radius: 6px;
}
.audioplayer{
display: inline-block;
float: left;
}
.player-rewind,.player-pref,.player-next,.player-shuffle{
display: inline-block;
float: left;
width: 21px;
height: 20px;
background-color: white;
margin-left: 10px;
margin-top: 5px;
}
</style>


<!-- JQuery untuk meload lagu dan set play, pause button-->
<script>
$(document).ready(function(){
var index = 0
//buat daftar object yang berisikan judul lagu yang akan di masukan ke playlist 
        //path disini adalah alamat lagu yang kita simpan
var trackList = [{path : "Catapult.mp3"},
                                {path : "R U Mine.mp3"},
                                {path : "Baby Im Yours.mp3"}]
var musicBox = $('#audioplayer').bind('play', function() {
//fungsi apabila tombol play  di tekan
                        playing = true;

                    }).bind('pause', function() {
//fungsi apabila tombol pause di tekan
                        playing = false;
                    }).bind('ended', function() {

                    //fungsi shuffle apa blia lagu telah habis
      var randomNum = Math.ceil(Math.random()*trackList.length) - 1; 
                    $('#audioplayer')[0].pause();
                    $('#audioplayer').attr("src", trackList[randomNum].path);
                    $('#audioplayer')[0].play();
                    index = randomNum;
                    console.log(trackList[randomNum].path)
                    }).get(0)
    
      //set apabila playlist di tekan, mengambil judul lagu yang di tekan, class "song"              
$(".song").click(function(){
var text = $(this).text();
$('#audioplayer')[0].currentTime = 0;
$('#audioplayer').attr("src", text + '.mp3');
$('#audioplayer')[0].play();
})
})
</script>
</head>


<body>
<div class="player-doom">
<!-- audio player -->
<div class="audioplayer">
  <audio id="audioplayer" name="audioplayer" controls>
    <source src="Catapult.mp3" srctype="audio/mpeg">
   browser kamu tidak support elemen audio
  </audio>
</div>
</div>

<!-- playlist kita sediakan dengan class "song" maka 
apabila di tekan jquery pergantian lagu berdasarkan judul akan terjadi-->
<div class="song">Catapult</div>
<div class="song">R U Mine</div>

</body>
</html>

Friday 4 October 2013

Create, Edit, And Execute StoreProcedure T-SQL

Membuat storeprocedure di SQL Server cukup mudah, Berikut ini syntax untuk membuatnya,
GO
--buat storeprocedure dengan nama "uSPShowEmployeeData"
CREATE PROCEDURE [dbo].[uSPShowEmployeeDataXXX]
--parameter yang di sediakan
@idEmployee INT
AS
-- query utama dari store procedure
  SELECT * FROM Employee Where idEmployee = @idEmployee 
GO
untuk penamaan penulis biasa menggunakan awalan huruf "u", karena sugest penulis, jika diawali dengan huruf "s" seperti "spShowEmployeeData" itu akan berpengaruh pada lama pengeksekusian, karena semua system storeprocedure di SQL Server semua menggunakan awalan "sp". jadi sewaktu kita eksekut nanti akan lama setelah pencarian ke storeprocedure system. hal ini berpengaruh saat kita menggunakan amat banyak storeprocedure. setelah di eksekusi nanti storeprocedure kita akan tampil di daftar programbility SQL Server

Untuk pengeditan Storeprocedure tinggal mengubah Create menjadi alter
GO
--Edit storeprocedure dengan nama "uSPShowEmployeeData" 
ALTER PROCEDURE [dbo].[uSPShowEmployeeXXXData]
--parameter yang di sediakan 
@idEmployee INT
AS
-- query utama dari store procedure 
   SELECT * FROM Employee Where idEmployee = @idEmployee
GO
sedangankan untuk pengeksekusiannya sangatlah mudah, sebagai contoh eksekusi storeprocedure yang telah kita buat di atas:
-- 23 adalah parameter yang di butuhkan
EXEC uSPShowEmployeeDataXXX 23

Wednesday 2 October 2013

Loop Record Table with Fetch Cursor on T-SQL

Fetch cursor adalah salah satu fasilitas yang disediakan oleh SQL Server untk looping dengan membawa informasi tiap record yang di looping tersebut, nanti mau diapakan data per-record hasil loopingan itu terserah kepada kita yang menolahnya, berikut ini adalah contoh looping menggunakan fetch cursor


-- pendeklarasian variable dan kursor
DECLARE @
IDMenu INT
DECLARE @MenuName VARCHAR(50)
--Mengisi cursor dengan query yang akan di looping
DECLARE MyCursor CURSOR FOR
SELECT IDMenu,MenuName FROM dbo.TblMenu
OPEN MyCursor
--mengisi hasil record ke dalam variable yang di sediakan
FETCH NEXT FROM MyCursor INTO @
IDMenu ,@MenuName
--looping
WHILE @@FETCH_STATUS = 0
BEGIN           --penggunaan variable yang
--sudah terisi hasil loopingannya
--nantinya terserah mau diapakan hasil perecordnya
SELECT @IDMenu AS idMenu,@MenuName as MenuName
--mengisi hasil record selanjutnya  --ke dalam variable yang di sediakan
FETCH NEXT FROM MyCursor INTO @
IDMenu ,@MenuName
        END
     
CLOSE MyCursor
DEALLOCATE MyCursor


Menurut Penulis, fetch cursor memang memakan banyak sekali memory, karena setiap loopingan per-record, akan menjalakan satu buah prosedur yang nantinya data tersebut akan kita olah, bayangkan apabila di query kursornya ada ratusan atau bahkan ribuan record, prosedur yang di jalankan = jumlah recordnya.

Create Temporary Table SQL Server

Pembuatan Temporary pada Query Tsql cukup mudah yaitu menggunakan tanda #, seberanarnya ada beberapa cara dalam pembuatannya, cara di bawah ini adalah bagaimana cara membuat sekaligus mengkopi hasil query yang kita jalankan kedalam Temporary table tersebut :

SELECT  e.EmployeeID, e.EmployeeName
INTO #AbsentEmployee
FROM Employee AS e INNER JOIN Absent AS a ON e.EmployeeID = a.EmplyeeID
HAVING a.Date = '02-01-2013' and a.AbsentID is null
SELECT * FROM #AbsentEmployee 
DROP TABLE #AbsentEmployee
  
kita tidak perlu menginsert kembali isi dari hasil query tersebut karena secara otomatis dia mengCopy semuanya kedalam temporary tablenya. Field yang dibuat itu berdasarkan apa yang kita select dari tablenya, cara ini cukup efisien apabila kita harus mendeklarasikannya terlebih dahulu.
 

Tuesday 1 October 2013

Send Email in ASP.Net

Mengirim Email lewat ASP.Net tidak terlalu memusingkan kepala, berikut ini contoh kodenya :
string EmailPengirim="email@pengirim.com";
string EmailTujuan = "email@tujuan.com";
string Judul = "judul-email";
string UsernameEmail = "username-email";
string PasswordEmail = "password-email";
string SmptServer = "smtp-server";
 int portEmailServer = "port-number";
string IsiEmail = "email-body"

MailMessage Email = new MailMessage(EmailPengirim, EmailTujuan, Judul, IsiEmail);
NetworkCredential Credential = new NetworkCredential(UsernameEmail, PasswordEmail);
SmtpClient SmtpServer = new SmtpClient(SmptServer, portEmailServer);
SmtpServer.Credentials = Credential ;
SmtpServer.Send(Email);
Tetapi dalam develop nanti hati2 dalam hal uji cobanya, email kita akan di kira spam, karena kita sedang develop dan lupa secara terus menerus mengirimkan hal dan alamat yang sama.