சென்ற கட்டுரையில்
SqlDataReader பற்றிப் பார்த்தோம். SqlDataReader என்பது டேட்டாவை retrieve செய்ய உதவும்
class ஆகும்.ஆனால் இது connection oriented ஆகும். Forward முறையிலேயே டேட்டாவை பெற
முடியும்.
SqlDataAdapter
மற்றும் DataSet ஆகிய இரண்டும் கலவையில் நாம் டேட்டா செர்வெரிடம் தொடரவுர்ந்த வேலையிலும்
டேட்டாவை பெறலாம்.
SqlCommand க்ளாஸிற்கு இரண்டு தகவல்கள் அனுப்புவோம்.
1.கமாண்ட் –செர்வருக்கு
நாம் அனுப்ப விரும்பும் sql statement
2.கனக்சன்-எந்த
டேட்டா பேஸ் உடன் நாம் தொடர்பு கொள்ள விரும்புகிறோம்
போன்றவற்றை அனுப்புவோம்.
அதே முறையில்
SqlDataAdapter க்ளாஸிற்கு இரண்டு தகவல்கள் அனுப்புவோம்.
1.கமாண்ட் –செர்வருக்கு
நாம் அனுப்ப விரும்பும் sql statement
2.கனக்சன்-எந்த
டேட்டா பேஸ் உடன் நாம் தொடர்பு கொள்ள விரும்புகிறோம்
முதலில்
web.confiq ஃபைலில் DB என்கின்ற connection string உருவாக்குவோம்
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<connectionStrings>
<add name ="DB"
connectionString =@"data source=MUTHU-PC\SQLEXPRESS;database=student;integrated
security=SSPI"
providerName="System.Data.sqlClient"/>
</connectionStrings>
</configuration>
முதலில் நம் பிராஜெக்டில் GridView ஒன்று சேர்த்து கொள்வோம்.
Auto format க்ளிக் செய்து brown sugar என்பதை தெரிவு செய்து
கொள்வோம்.
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Data;
using
System.Data.SqlClient;
using
System.Configuration;
namespace
WebApplication4
{
public partial class WebForm1 :
System.Web.UI.Page
{
protected void
Page_Load(object sender, EventArgs e)
{
String cs = ConfigurationManager.ConnectionStrings["DB"].ConnectionString;
using(SqlConnection con = new
SqlConnection(cs))
{
SqlDataAdapter da=new
SqlDataAdapter("select
* from mark",con);
DataSet ds=new DataSet();
da.Fill(ds);
GridView1.DataSource=ds;
GridView1.DataBind ( );
}
}
}
}
இதில் கனக்சன் உருவாக்கிய பிறகு SqlDataAdapter க்ளாஸிற்கு ஆப்ஜெக்ட்
உருவாக்கும் பொது sql command,,connection ஆகியவற்றை அனுப்புகின்றோம்.
அடுத்தது SqlDataAdapter
ஆனதை உபயோகித்து sql கட்டளையை இயக்கி டேட்டா செட் ஆப்ஜெக்ட் ஆன ds என்பதை நிரப்புகின்றோம். இப்போது கனக்சன் ஆனது தானாகவே ஒபன் ஆகும். டேட்டா
செட்டை நிரப்பிய பிறகு தானாகவே மூடிக் கொள்ளூம்.
பின்னர் GridView1-ன் DataSource ஆக ds என்பதை தெரிவிக்கின்றோம்.
இப்போது இதன் வெளீயாடாக பின் வரும் படி வரும்..டேட்டா செட்டின்
சிறப்பம்சமாது இது டேட்டா செர்வெரிடம் கனக்சன் இல்லாத நிலையிலும் டேட்டாபேஸ்,டேபிள்,வியூ
போன்றவற்றை சேமித்து வைத்திருக்கும்.
இதில் sql கட்டளைக்கு பதில் stored procedure பயன்படுத்தலாம்.
முதலில் sql server ms-ல் ஒரு ஸ்டோர்டு ப்ரொசிஜர் உருவாகுவோம்.
create procedure spGetMarks
as
Begin
select * from mark ;
End
இதை இயக்கிய பிறகு நிரல் வரிகளில் பின் வரும்
மாற்றத்தை ஏற்படுத்த வேண்டும்.
protected void
Page_Load(object sender, EventArgs e)
{
String cs = ConfigurationManager.ConnectionStrings["DB"].ConnectionString;
using(SqlConnection
con = new SqlConnection(cs))
{
SqlDataAdapter da = new
SqlDataAdapter("spGetMarks",
con);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
DataSet ds=new DataSet();
da.Fill(ds);
GridView1.DataSource=ds;
GridView1.DataBind ();
}
}
இப்போதும் அதே வெளியீடு கிடைக்கும்.
இப்போது stored procedure-க்கு பராமீட்டர்
அனுப்புவோம்.அதற்கேற்றார் போல்அதை மாற்றி அமைப்போம்.
. create
procedure spGetMarksBYsno
@sno int
as
Begin
select * from mark where sno=@sno;
End
இப்போது நம் வெப் பயன் பாட்டின் உருவாக்கத்தை பின்
வருமாரு மாற்றி அமைப்போம்.
இப்போது புதிதாக
ஒரு டெக்ஸ்ட் பாக்ஸும் ஒரு பட்டன் ஒன்றும் புதிதாக சேர்த்துள்ளோம்.
இப்போது நாம்
textbox-ல் என்ன student no கொடுக்கின்றோமோ அதன் வெளியீடு மட்டும் கிடைக்கும்.
இப்போது Button1_Click ஈவண்டில் பின் வருமாரு மாற்றி அமைப்போம்.
protected
void Button1_Click(object
sender, EventArgs e)
{
string cs = ConfigurationManager.ConnectionStrings["DB"].ConnectionString;
using (SqlConnection
con = new SqlConnection(cs))
{
SqlDataAdapter da = new
SqlDataAdapter("spGetMarksBYsno",
con);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
da.SelectCommand.Parameters.AddWithValue("@sno",
txtSno.Text);
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
}
இப்போது நாம் என்ன
student no கொடுக்கின்றோமோ அதன் வெளியீடு மட்டும் கிடைக்கும்..
இப்போது ஒரே டேட்டா செட்டில் ஒன்றுக்கும் மேற்பட்ட டேபிள்களை சேமிப்பது என்று பார்ப்போம்.
முதலில் stored
procedure ஒன்றை SSMS மூலம் உருவாக்குவோம்.
create procedure spData
as
Begin
select * from contact;
select * from mark;
End
பிறகு VS2010-ல்
வெப் பயன்பாட்டில் கோடிங்கில் பின் வருமாறு மாற்றி அமைப்போம்.
அதற்கு முன்னால்
இப்போது DESIGN சென்று இரண்டு GRIDVIEW-க்களை உருவாக்குவோம்.
பின்னர் நிரல்
வரிகளில் பின் வருமாறு மாற்றி அமைப்போம்.
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
using
System.Data;
using
System.Data.SqlClient;
using
System.Configuration;
namespace
WebApplication5
{
public partial class WebForm1 :
System.Web.UI.Page
{
protected void
Page_Load(object sender, EventArgs e)
{
String cs = ConfigurationManager.ConnectionStrings["DB"].ConnectionString;
using (SqlConnection
con = new SqlConnection(cs))
{
SqlDataAdapter da = new
SqlDataAdapter("spData",
con);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds.Tables[0];
GridView1.DataBind();
GridView2.DataSource = ds.Tables[1];
GridView2.DataBind();
}
}
}
}
இவ்வாறு நாம் ஒன்றுக்கும் மேற்பட்ட டேபிள்களை ஒரே டேட்டா செட்டில்
-
முத்து கார்த்திகேயன்,மதுரை
No comments:
Post a Comment