HTML, JavaScript, PHP, ASP, .Net, C#, MySQL, Ms. SQL ...
Há diversas maneiras para uma aplicação em ASP.Net C# conectar a um banco de dados. Dentre elas, existem o DataSet, DataTable e o DataReader.
Vou disponibilizar apenas os códigos. Quanto a diferença entre DataSet, DataTable e DataReader, consultem o Google! Em um outro dia, outra hora explico a diferença...
CREATE DATABASE TESTE
GO
USE TESTE
CREATE TABLE TB_CATEGORIAS
(
ID INT IDENTITY PRIMARY KEY,
NOME VARCHAR(30)
)
SET IDENTITY_INSERT TB_CATEGORIAS ON
INSERT INTO TB_CATEGORIAS (ID, NOME) VALUES (1,'Bebidas')
INSERT INTO TB_CATEGORIAS (ID, NOME) VALUES (2,'Carnes')
INSERT INTO TB_CATEGORIAS (ID, NOME) VALUES (3,'Condimentos')
INSERT INTO TB_CATEGORIAS (ID, NOME) VALUES (4,'Frutas/Verduras')
SET IDENTITY_INSERT TB_CATEGORIAS OFF
SELECT * FROM TB_CATEGORIAS
CREATE TABLE TB_PRODUTOS
(
ID INT IDENTITY PRIMARY KEY,
ID_CATEGORIA INT FOREIGN KEY REFERENCES TB_CATEGORIAS(ID),
NOME VARCHAR(30)
)
SET IDENTITY_INSERT TB_PRODUTOS ON
INSERT INTO TB_PRODUTOS (ID, ID_CATEGORIA, NOME) VALUES(1, 1, 'Coca-cola')
INSERT INTO TB_PRODUTOS (ID, ID_CATEGORIA, NOME) VALUES(2, 1, 'Pepsi')
INSERT INTO TB_PRODUTOS (ID, ID_CATEGORIA, NOME) VALUES(3, 1, 'Brahma')
INSERT INTO TB_PRODUTOS (ID, ID_CATEGORIA, NOME) VALUES(4, 1, 'Devassa')
INSERT INTO TB_PRODUTOS (ID, ID_CATEGORIA, NOME) VALUES(5, 1, 'Skol')
INSERT INTO TB_PRODUTOS (ID, ID_CATEGORIA, NOME) VALUES(6, 1, 'Kaiser')
INSERT INTO TB_PRODUTOS (ID, ID_CATEGORIA, NOME) VALUES(7, 2, 'Contra filé')
INSERT INTO TB_PRODUTOS (ID, ID_CATEGORIA, NOME) VALUES(8, 2, 'Alcatra')
INSERT INTO TB_PRODUTOS (ID, ID_CATEGORIA, NOME) VALUES(9, 2, 'Coxão mole')
INSERT INTO TB_PRODUTOS (ID, ID_CATEGORIA, NOME) VALUES(10, 2, 'Coxão duro')
INSERT INTO TB_PRODUTOS (ID, ID_CATEGORIA, NOME) VALUES(11, 2, 'Patinho')
INSERT INTO TB_PRODUTOS (ID, ID_CATEGORIA, NOME) VALUES(12, 2, 'Lagarto')
INSERT INTO TB_PRODUTOS (ID, ID_CATEGORIA, NOME) VALUES(13, 3, 'Sal')
INSERT INTO TB_PRODUTOS (ID, ID_CATEGORIA, NOME) VALUES(14, 3, 'Pimenta do reino')
INSERT INTO TB_PRODUTOS (ID, ID_CATEGORIA, NOME) VALUES(15, 3, 'Alecrim')
INSERT INTO TB_PRODUTOS (ID, ID_CATEGORIA, NOME) VALUES(16, 3, 'Raiz-forte')
INSERT INTO TB_PRODUTOS (ID, ID_CATEGORIA, NOME) VALUES(17, 3, 'Azeite')
INSERT INTO TB_PRODUTOS (ID, ID_CATEGORIA, NOME) VALUES(18, 4, 'Maçã')
INSERT INTO TB_PRODUTOS (ID, ID_CATEGORIA, NOME) VALUES(19, 4, 'Pêra')
INSERT INTO TB_PRODUTOS (ID, ID_CATEGORIA, NOME) VALUES(20, 4, 'Abacaxi')
INSERT INTO TB_PRODUTOS (ID, ID_CATEGORIA, NOME) VALUES(21, 4, 'Tomate')
INSERT INTO TB_PRODUTOS (ID, ID_CATEGORIA, NOME) VALUES(22, 4, 'Batata')
SET IDENTITY_INSERT TB_PRODUTOS OFF
SELECT * FROM TB_PRODUTOS
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0"/>
</system.web>
<connectionStrings>
<add connectionString="Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=TESTE;Data Source=localhost\SQLEXPRESS;" name="MsSQL" providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
using System.Data;
using System.Data.SqlClient;
namespace db
{
public class Sql
{
public static DataSet getDataSet(string strSQL)
{
DataSet ds = new DataSet();
SqlConnection cn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["MsSQL"].ConnectionString);
cn.Open();
SqlDataAdapter da = new SqlDataAdapter(strSQL, cn);
ds.Tables.Add();
ds.EnforceConstraints = false; // Desabilita restrições SQL constraints, deixando o DataSet mais rápido (+/- engine MyIsam do MySQL)
ds.Tables[0].BeginLoadData(); // Trata todas as colunas sem diferença, sem PK, sem FK...
da.Fill(ds.Tables[0]);
cn.Close();
return ds;
cn = null;
}
public static DataTable getDataTable(string strSQL)
{
SqlConnection cn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["MsSQL"].ConnectionString);
SqlCommand cmd = new SqlCommand(strSQL, cn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataTable dt = new DataTable();
da.Fill(dt);
da = null;
cn.Close();
cn = null;
return dt;
}
public static SqlDataReader getDataReader(string strSQL)
{
SqlConnection cn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["MsSQL"].ConnectionString);
cn.Open();
SqlCommand cmd = new SqlCommand(strSQL, cn);
SqlDataReader dr = cmd.ExecuteReader();
return dr;
cn.Close();
cn = null;
}
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body runat="server">
<form runat="server">
<h1>Banco de dados</h1>
<h2>asp:DropDownList</h2>
<p>Utilizando DataSet</p>
<p><asp:DropDownList ID="DropDownDS" runat="server"></asp:DropDownList></p>
<br />
<p>Utilizando DataTable</p>
<p><asp:DropDownList ID="DropDownDT" runat="server"></asp:DropDownList></p>
<br />
<p>Utilizando DataReader</p>
<p><asp:DropDownList ID="DropDownDR" runat="server"></asp:DropDownList></p>
<hr />
<h2>asp:TextBox</h2>
<p>Utilizando DataReader</p>
<p><asp:TextBox ID="TextBoxDR" runat="server" Height="174px" TextMode="MultiLine" Width="248px"></asp:TextBox></p>
<hr />
<h2>asp:DataGrid</h2>
<p>Utilizando DataTable</p>
<div><asp:DataGrid id="DataGridDT" runat="server"></asp:DataGrid></div>
<hr />
<h2>asp:DataList</h2>
<p>Utilizando DataTable</p>
<asp:DataList ID="DataListDT" runat="server" border="1" CellPadding="3" CellSpacing="0" RepeatColumns="5" RepeatDirection="Horizontal">
<ItemTemplate>
<p class="pequeno"><span class="label">Categoria:</span> <span class="value"> <span class="pequeno cinza"><%# DataBinder.Eval(Container.DataItem, "ID")%></span> <%# DataBinder.Eval(Container.DataItem, "NOME") %></span></p>
<p class="label">Produto:</p>
<p class="value"><%# DataBinder.Eval(Container.DataItem, "ID_PRODUTO") %> <%# DataBinder.Eval(Container.DataItem, "NOME_PRODUTO") %></p>
</ItemTemplate>
</asp:DataList>
<p>Utilizando DataReader</p>
<asp:DataList ID="DataListDR" runat="server" border="1" CellPadding="3" CellSpacing="0">
<ItemTemplate>
<p><span class="label"><%# DataBinder.Eval(Container.DataItem, "ID")%> </span> <span class="value"><%# DataBinder.Eval(Container.DataItem, "NOME") %></span></p>
</ItemTemplate>
</asp:DataList>
<hr />
<h2>asp:Repeater</h2>
<p>Utilizando DataTable</p>
<ul><asp:Repeater ID="RepeaterDT" runat="server">
<ItemTemplate>
<li><%# DataBinder.Eval(Container.DataItem, "NOME")%></li>
</ItemTemplate>
</asp:Repeater></ul>
<p>Utilizando DataReader (modo1)</p>
<ul><asp:Repeater ID="RepeaterDR1" runat="server">
<ItemTemplate>
<li><%# DataBinder.Eval(Container.DataItem, "NOME")%></li>
</ItemTemplate>
</asp:Repeater></ul>
<p>Utilizando DataReader (modo2)</p>
<ul><asp:Repeater ID="RepeaterDR2" runat="server">
<ItemTemplate>
<li class="li0"><%# DataBinder.Eval(Container.DataItem, "NOME")%></li>
</ItemTemplate>
<AlternatingItemTemplate>
<li class="li1"><%# DataBinder.Eval(Container.DataItem, "NOME")%></li>
</AlternatingItemTemplate>
</asp:Repeater></ul>
</form>
</body>
</html>
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using db;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
#region asp:DropDownList
//DATASET
DataSet ds = db.Sql.getDataSet("SELECT A.ID, A.NOME FROM TB_CATEGORIAS A");
DropDownDS.DataValueField = ds.Tables[0].Columns[0].ToString();
DropDownDS.DataTextField = ds.Tables[0].Columns[1].ToString();
DropDownDS.DataSource = ds.Tables[0].DefaultView;
DropDownDS.DataBind();
ds = null;
//DATATABLE
DataTable dt = db.Sql.getDataTable("SELECT A.ID, A.NOME FROM TB_CATEGORIAS A");
DropDownDT.DataSource = dt;
DropDownDT.DataValueField = dt.Columns[0].ToString();
DropDownDT.DataTextField = dt.Columns[1].ToString();
DropDownDT.DataBind();
dt = null;
//DATAREADER
SqlDataReader dr = db.Sql.getDataReader("SELECT A.ID, A.NOME FROM TB_CATEGORIAS A");
while (dr.Read())
{
DropDownDR.Items.Add(new ListItem(dr[1].ToString(), dr[0].ToString()));
}
#endregion
#region asp:TextBox
//DATAREADER
dr = db.Sql.getDataReader("SELECT A.ID, A.NOME FROM TB_CATEGORIAS A");
while (dr.Read())
TextBoxDR.Text+= dr[0].ToString() + " " + dr[1].ToString() + "
";
#endregion
#region asp:DataGrid
dt = db.Sql.getDataTable("SELECT A.ID , A.NOME, B.ID, B.NOME FROM TB_CATEGORIAS A, TB_PRODUTOS B WHERE A.ID=B.ID_CATEGORIA");
// dt.Rows[0].Delete(); // Remove a primeira linha
// dt.Rows[4].Delete(); // Remove a quinta linha
// dt.Columns[0].ColumnName="Número"; // Renomeia a primeira coluna
DataGridDT.DataSource = dt;
DataGridDT.DataBind();
#endregion
#region asp:DataList
//DATATABLE
dt = db.Sql.getDataTable("SELECT A.ID , A.NOME, B.ID, B.NOME FROM TB_CATEGORIAS A, TB_PRODUTOS B WHERE A.ID=B.ID_CATEGORIA");
dt.Columns[2].ColumnName = "ID_PRODUTO"; // Renomeia a terceira coluna
dt.Columns[3].ColumnName = "NOME_PRODUTO"; // Renomeia a quarta coluna
DataListDT.DataSource = dt;
DataListDT.DataBind();
//DATAREADER
DataListDR.DataSource = db.Sql.getDataReader("SELECT ID, NOME FROM TB_CATEGORIAS");
DataListDR.DataBind();
#endregion
#region asp:Repeater
//DATATABLE
RepeaterDT.DataSource = db.Sql.getDataTable("SELECT NOME FROM TB_PRODUTOS ORDER BY NOME");
RepeaterDT.DataBind();
//DATAREADER (modo 1)
RepeaterDR1.DataSource = db.Sql.getDataReader("SELECT NOME FROM TB_CATEGORIAS");
RepeaterDR1.DataBind();
//DATAREADER (modo 2)
RepeaterDR2.DataSource = db.Sql.getDataReader("SELECT NOME FROM TB_CATEGORIAS");
RepeaterDR2.DataBind();
#endregion
}
}