Fabio Mans
23/06/2009
Olá Luiz eu não mais hospedando o site de compras, atualmente só o meu site mesmo.
Obrigado.
GOSTEI 0
Luiz Franco
23/06/2009
Olá Fabio Galante boa tarde
Então eu passo adiante e pulo a parte do video deste capitulo onde é dito para fazermos experimentos fazendo o login na loja do site que estaria hospedado ? Por isso que eu perguntei se haveria outro link de testes como demonstra o video da loja
Fico no aguardo e desde já agradeço
GOSTEI 0
Fabio Mans
23/06/2009
Infelizmente não mais Luiz, para isso eu pagava uma conta com SQL Server em um provedor e pra mim não é mais viável.
Abraços
Fabio
GOSTEI 0
Fabio Mans
23/06/2009
Olá Luiz o correto é você dar continuidade, como eu gravei este vídeo faz muito tempo não serial viável eu manter uma conta com SQL, custa no mínimo R$ 35,00 mensais uma hospedagem com SQL, mas nada impede de você continuar o curso. Dúvidas entre em contato.
Fabio
Olá Fabio Galante boa tarde
Então eu passo adiante e pulo a
parte do video deste capitulo onde é dito para fazermos experimentos
fazendo o login na loja do site que estaria hospedado ? Por isso que eu
perguntei se haveria outro link de testes como demonstra o video da
loja
Fico no aguardo e desde já agradeço
GOSTEI 0
Luiz Franco
23/06/2009
Uma Nova duvida relativa á este mesmo capítulo posso fazê-la neste mesmo post?
Tem a haver com a classe Product.cs é que na base de dados que estou fazendo pra minha loja virtual acrescentei este campo, [Trial] [bit] NULL,
USE [WebProdutos]
GO
/****** Object: Table [dbo].[dev_Products] Script Date: 07/01/2009 01:53:49 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[dev_Products](
[ProductID] [int] IDENTITY(1,1) NOT NULL,
[CategoryID] [int] NOT NULL,
[Title] [nvarchar](256) NOT NULL,
[Description] [nvarchar](max) NOT NULL,
[Price] [smallmoney] NOT NULL,
[ImageURL] [nvarchar](256) NOT NULL,
[Trial] [bit] NULL,
CONSTRAINT [PK_dev_Products] PRIMARY KEY CLUSTERED
(
[ProductID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[dev_Products] WITH CHECK ADD CONSTRAINT [FK_dev_Products_dev_Categories] FOREIGN KEY([CategoryID])
REFERENCES [dbo].[dev_Categories] ([CategoryID])
GO
ALTER TABLE [dbo].[dev_Products] CHECK CONSTRAINT [FK_dev_Products_dev_Categories]
Então o que eu queria saber é o que é que se tem que se mudar na classe Product.cs abaixo pois nos inserts, updates e selects este campo apesar de ser true e false dependendo da situação deverá sêr reconhecido se for melhor me deixe um email e te envio o script da base com os procedures tb atualizados
Aqui a classe
namespace DevMedia.ECommerce
{
///<summary>
///Represents a product and methods for
///working with products
///</summary>
[System.ComponentModel.DataObject]
public class Product
{
private static readonly string _connectionString;
private int _productId;
private int _categoryId;
private string _title;
private string _description;
private decimal _price;
private string _imageurl;
private string _categoryTitle;
public int ProductID
{
get { return _productId; }
set { _productId = value; }
}
public int CategoryID
{
get { return _categoryId; }
set { _categoryId = value; }
}
public string Title
{
get { return _title; }
set { _title = value; }
}
public string Description
{
get { return _description; }
set { _description = value; }
}
public decimal Price
{
get { return _price; }
set { _price = value; }
}
public string ImageURL
{
get { return _imageurl; }
set { _imageurl = value; }
}
public string CategoryTitle
{
get { return _categoryTitle; }
set { _categoryTitle = value; }
}
#region Methods
/// <summary>
/// Create a new product
/// </summary>
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, true)]
public static void Insert(int categoryId, string title,string description, decimal price , string imageURL)
{
// Initialize command
SqlConnection con = new SqlConnection(_connectionString);
SqlCommand cmd = new SqlCommand("dev_ProductInsert", con);
cmd.CommandType = CommandType.StoredProcedure;
// Initialize parameters
cmd.Parameters.AddWithValue("@CategoryId", categoryId);
cmd.Parameters.AddWithValue("@Title", title);
cmd.Parameters.AddWithValue("@Description", description);
cmd.Parameters.AddWithValue("@Price", price);
cmd.Parameters.AddWithValue("@ImageURL", imageURL);
using (con)
{
con.Open();
cmd.ExecuteNonQuery();
}
}
/// <summary>
/// Delete an existing product
/// </summary>
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Delete, true)]
public static void Delete(int ProductId)
{
// Initialize command
SqlConnection con = new SqlConnection(_connectionString);
SqlCommand cmd = new SqlCommand("dev_ProductDelete", con);
cmd.CommandType = CommandType.StoredProcedure;
// Initialize parameters
cmd.Parameters.AddWithValue("@ProductId", ProductId);
// Execute command
using (con)
{
con.Open();
cmd.ExecuteNonQuery();
}
}
/// <summary>
/// Update an existing product
/// </summary>
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, true)]
public static void Update(int productid, int categoryId, string title, decimal price, string description, string imageUrl)
{
Convert.ToDecimal(price);
// Initialize command
SqlConnection con = new SqlConnection(_connectionString);
SqlCommand cmd = new SqlCommand("dev_ProductUpdate", con);
cmd.CommandType = CommandType.StoredProcedure;
// Initialize parameters
cmd.Parameters.AddWithValue("@ProductID", productid);
cmd.Parameters.AddWithValue("@CategoryID", categoryId);
cmd.Parameters.AddWithValue("@Title", title);
cmd.Parameters.AddWithValue("@Price", price);
cmd.Parameters.AddWithValue("@Description", description);
cmd.Parameters.AddWithValue("@ImageURL", imageUrl);
// Execute command
using (con)
{
con.Open();
cmd.ExecuteNonQuery();
}
}
/// <summary>
/// Select all products from database
/// </summary>
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]
public static List<Product> Select()
{
// Initialize command
SqlConnection con = new SqlConnection(_connectionString);
SqlCommand cmd = new SqlCommand("dev_SelectAllProduct", con);
cmd.CommandType = CommandType.StoredProcedure;
List<Product> results = new List<Product>();
using (con)
{
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
results.Add(new Product(reader));
}
return results;
}
/// <summary>
/// Select all products in a particular category
/// </summary>
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]
public static List<Product> SelectByCategoryId(int categoryId)
{
//Initialize command
SqlConnection con = new SqlConnection(_connectionString);
SqlCommand cmd = new SqlCommand("dev_ProductSelectByCategoryId", con);
cmd.CommandType = CommandType.StoredProcedure;
// Add parameters
cmd.Parameters.AddWithValue("@CategoryId", categoryId);
List<Product> results = new List<Product>();
using (con)
{
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
results.Add(new Product(reader));
}
return results;
}
/// <summary>
/// Select a single product by Id
/// </summary>
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]
public static Product Select(int productId)
{
//Initialize command
SqlConnection con = new SqlConnection(_connectionString);
SqlCommand cmd = new SqlCommand("dev_ProductSelectById", con);
cmd.CommandType = CommandType.StoredProcedure;
// Add parameters
cmd.Parameters.AddWithValue("@ProductId", productId);
Product result = null;
using (con)
{
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
result = new Product(reader);
}
return result;
}
/// <summary>
/// Select all products random
/// </summary>
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]
public static List<Product> SelectProductRandom()
{
//Initialize command
SqlConnection con = new SqlConnection(_connectionString);
SqlCommand cmd = new SqlCommand("dev_ProductRandom", con);
cmd.CommandType = CommandType.StoredProcedure;
List<Product> results = new List<Product>();
using (con)
{
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
results.Add(new Product(reader));
}
return results;
}
#endregion
/// <summary>
/// Initializes a product from a DataReader
/// </summary>
/// <param name="reader"></param>
public Product(SqlDataReader reader)
{
_productId = (int)reader["ProductID"];
if (reader["CategoryId"] != DBNull.Value)
_categoryId = (int)reader["CategoryID"];
if (reader["CategoryTitle"] != DBNull.Value)
_categoryTitle = (string)reader["CategoryTitle"];
_title = (string)reader["Title"];
_description = (string)reader["Description"];
_price = (decimal)reader["Price"];
_imageurl = (string)reader["ImageURL"];
}
/// <summary>
/// Retrieve database connection string from Web configuration
/// </summary>
static Product()
{
_connectionString = WebConfigurationManager.ConnectionStrings["StoreString"].ConnectionString;
}
}
}
Fico no aguardo e desde já agradeço
GOSTEI 0
Fabio Mans
23/06/2009
Oá Luiz, você vai ter que mudar tudo.
Acrescentar uma nova propriedade, para as procedures você tem que acrescentar o novo campo e o mesmo para os métodos.
Fabio
GOSTEI 0
Luiz Franco
23/06/2009
Olá Fabio veja se no caso das Store Procedures se é isso?
// PARA A CLASSE PRODUCTS.CS
CREATE PROCEDURE [dbo].[dev_SelectAllProduct]
AS
SELECT dev_Products.ProductID, dev_Products.CategoryID, dev_Categories.Title AS CategoryTitle, dev_Products.Title,
dev_Products.Description, dev_Products.Price, dev_Products.ImageURL, dev_Products.Trial
FROM dev_Categories INNER JOIN
dev_Products ON dev_Categories.CategoryID = dev_Products.CategoryID
ORDER BY dev_Products.Title
SET NOCOUNT ON
RETURN
CREATE PROCEDURE [dbo].[dev_ProductDelete]
(
@ProductID Int
)
AS
DELETE dev_Products WHERE ProductID=@ProductID
==========================================
CREATE PROCEDURE [dbo].[dev_ProductInsert]
(
@CategoryId INT,
@Title NVarchar(256),
@Description NVarchar(max),
@Price Money,
@ImageURL NVarchar(256),
@Trial bit
)
AS
INSERT dev_Products
(
CategoryId,
Title,
Description,
Price,
ImageURL,
Trial
)
VALUES
(
@CategoryId,
@Title,
@Description,
@Price,
@ImageURL,
@Trial
)
CREATE PROCEDURE [dbo].[dev_ProductRandom]
AS
SELECT top 9 dev_Products.ProductID, dev_Products.CategoryID, dev_Categories.Title AS CategoryTitle, dev_Products.Title,
dev_Products.Description, dev_Products.Price, dev_Products.ImageURL, dev_Products.Trial
FROM dev_Categories INNER JOIN
dev_Products ON dev_Categories.CategoryID = dev_Products.CategoryID
ORDER BY NEWID()
CREATE PROCEDURE [dbo].[dev_ProductSelectByCategoryId]
(
@CategoryID Int
)
AS
SELECT dev_Products.ProductID, dev_Products.CategoryID, dev_Categories.Title AS CategoryTitle, dev_Products.Title,
dev_Products.Description, dev_Products.Price, dev_Products.ImageURL, dev_Products.Trial
FROM dev_Categories INNER JOIN
dev_Products ON dev_Categories.CategoryID = dev_Products.CategoryID
WHERE dev_Products.CategoryID = @CategoryId
CREATE PROCEDURE [dbo].[dev_ProductSelectById]
(
@ProductId Int
)
AS
SELECT dbo.dev_Products.ProductID, dbo.dev_Products.CategoryID, dbo.dev_Products.Title, dbo.dev_Products.Description, dbo.dev_Products.Price,
dbo.dev_Categories.Title AS CategoryTitle, dbo.dev_Products.ImageURL, dbo.dev_Products.Trial
FROM dbo.dev_Categories INNER JOIN
dbo.dev_Products ON dbo.dev_Categories.CategoryID = dbo.dev_Products.CategoryID
WHERE (ProductId = @ProductId)
CREATE PROCEDURE [dbo].[dev_ProductUpdate]
(
@ProductID INT,
@CategoryID INT,
@Title NVarchar(256),
@Description NVarchar(max),
@Price Money,
@ImageURL NVarchar(256),
@Trial bit
)
AS
UPDATE dev_Products SET
CategoryID = @CategoryId,
Title = @Title,
Description = @Description,
Price = @Price,
ImageURL = @ImageURL,
Trial = @Trial
WHERE
ProductID = @ProductID
e apesar de eu aindã não têr chegado na devida aula como por exemplo ao cadastrar os produtos no datasource eu setaria e que objeto seria melhor utilizado para eu setar o campo bit Trial para true ou false ao cadastrar o produto já que isso será por produto haverá produto na minha lista que será trial e outros não com o objetivo de aparecer ou não no grid ou pagina detalhes do produto o link com opção de baixar a versão trial do mesmo
Fico no aguardo e desde já agradeço
GOSTEI 0
Fabio Mans
23/06/2009
Como você não sabe se ele vai ser true ou false no cadastro o melhor você utilizar um checkbox, caso contrário poderia definir um valor default no banco.
Fabio
GOSTEI 0
Luiz Franco
23/06/2009
Olá Fabio e vc poderia me passar um exemplo da classe Product.cs e também do source do cadastro da parte de produtos.aspx da area admim ou pelo menos o formview como ficaria o checkbox e o datasource neste caso
lembrando que o campo Trial é do tipo bit
Fico no aguardo caso possa me repassar a classe como ficaria ou o source ou um video dos dois, nesta alternativa e desde já agradeço
GOSTEI 0
Fabio Mans
23/06/2009
Olá Luiz, mas o que você precisa de exemplo, vi que já montou o proc, qual sua dúvida exatamente?
Fabio
GOSTEI 0
Luiz Franco
23/06/2009
Olá Fabio Galante - bom dia
a Minha duvida exatamente é conforme as procedures que ti passei e em relação ao campo bit Trial?
Seriam:
A)O que eu acrescento em relação ao campo bit Trial na class Products.cs?
using System;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using System.Web.Configuration;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace DevMedia.ECommerce
{
///<summary>
///Represents a product and methods for
///working with products
///</summary>
[System.ComponentModel.DataObject]
public class Product
{
private static readonly string _connectionString;
private int _productId;
private int _categoryId;
private string _title;
private string _description;
private decimal _price;
private string _imageurl;
private string _categoryTitle;
public int ProductID
{
get { return _productId; }
set { _productId = value; }
}
public int CategoryID
{
get { return _categoryId; }
set { _categoryId = value; }
}
public string Title
{
get { return _title; }
set { _title = value; }
}
public string Description
{
get { return _description; }
set { _description = value; }
}
public decimal Price
{
get { return _price; }
set { _price = value; }
}
public string ImageURL
{
get { return _imageurl; }
set { _imageurl = value; }
}
public string CategoryTitle
{
get { return _categoryTitle; }
set { _categoryTitle = value; }
}
#region Methods
/// <summary>
/// Create a new product
/// </summary>
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, true)]
public static void Insert(int categoryId, string title, string description, decimal price, string imageURL)
{
// Initialize command
SqlConnection con = new SqlConnection(_connectionString);
SqlCommand cmd = new SqlCommand("dev_ProductInsert", con);
cmd.CommandType = CommandType.StoredProcedure;
// Initialize parameters
cmd.Parameters.AddWithValue("@CategoryId", categoryId);
cmd.Parameters.AddWithValue("@Title", title);
cmd.Parameters.AddWithValue("@Description", description);
cmd.Parameters.AddWithValue("@Price", price);
cmd.Parameters.AddWithValue("@ImageURL", imageURL);
using (con)
{
con.Open();
cmd.ExecuteNonQuery();
}
}
/// <summary>
/// Delete an existing product
/// </summary>
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Delete, true)]
public static void Delete(int ProductId)
{
// Initialize command
SqlConnection con = new SqlConnection(_connectionString);
SqlCommand cmd = new SqlCommand("dev_ProductDelete", con);
cmd.CommandType = CommandType.StoredProcedure;
// Initialize parameters
cmd.Parameters.AddWithValue("@ProductId", ProductId);
// Execute command
using (con)
{
con.Open();
cmd.ExecuteNonQuery();
}
}
/// <summary>
/// Update an existing product
/// </summary>
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, true)]
public static void Update(int productid, int categoryId, string title, decimal price, string description, string imageUrl)
{
Convert.ToDecimal(price);
// Initialize command
SqlConnection con = new SqlConnection(_connectionString);
SqlCommand cmd = new SqlCommand("dev_ProductUpdate", con);
cmd.CommandType = CommandType.StoredProcedure;
// Initialize parameters
cmd.Parameters.AddWithValue("@ProductID", productid);
cmd.Parameters.AddWithValue("@CategoryID", categoryId);
cmd.Parameters.AddWithValue("@Title", title);
cmd.Parameters.AddWithValue("@Price", price);
cmd.Parameters.AddWithValue("@Description", description);
cmd.Parameters.AddWithValue("@ImageURL", imageUrl);
// Execute command
using (con)
{
con.Open();
cmd.ExecuteNonQuery();
}
}
/// <summary>
/// Select all products from database
/// </summary>
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]
public static List<Product> Select()
{
// Initialize command
SqlConnection con = new SqlConnection(_connectionString);
SqlCommand cmd = new SqlCommand("dev_SelectAllProduct", con);
cmd.CommandType = CommandType.StoredProcedure;
List<Product> results = new List<Product>();
using (con)
{
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
results.Add(new Product(reader));
}
return results;
}
/// <summary>
/// Select all products in a particular category
/// </summary>
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]
public static List<Product> SelectByCategoryId(int categoryId)
{
//Initialize command
SqlConnection con = new SqlConnection(_connectionString);
SqlCommand cmd = new SqlCommand("dev_ProductSelectByCategoryId", con);
cmd.CommandType = CommandType.StoredProcedure;
// Add parameters
cmd.Parameters.AddWithValue("@CategoryId", categoryId);
List<Product> results = new List<Product>();
using (con)
{
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
results.Add(new Product(reader));
}
return results;
}
/// <summary>
/// Select a single product by Id
/// </summary>
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]
public static Product Select(int productId)
{
//Initialize command
SqlConnection con = new SqlConnection(_connectionString);
SqlCommand cmd = new SqlCommand("dev_ProductSelectById", con);
cmd.CommandType = CommandType.StoredProcedure;
// Add parameters
cmd.Parameters.AddWithValue("@ProductId", productId);
Product result = null;
using (con)
{
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
result = new Product(reader);
}
return result;
}
/// <summary>
/// Select all products random
/// </summary>
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]
public static List<Product> SelectProductRandom()
{
//Initialize command
SqlConnection con = new SqlConnection(_connectionString);
SqlCommand cmd = new SqlCommand("dev_ProductRandom", con);
cmd.CommandType = CommandType.StoredProcedure;
List<Product> results = new List<Product>();
using (con)
{
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
results.Add(new Product(reader));
}
return results;
}
#endregion
/// <summary>
/// Initializes a product from a DataReader
/// </summary>
/// <param name="reader"></param>
public Product(SqlDataReader reader)
{
_productId = (int)reader["ProductID"];
if (reader["CategoryId"] != DBNull.Value)
_categoryId = (int)reader["CategoryID"];
if (reader["CategoryTitle"] != DBNull.Value)
_categoryTitle = (string)reader["CategoryTitle"];
_title = (string)reader["Title"];
_description = (string)reader["Description"];
_price = (decimal)reader["Price"];
_imageurl = (string)reader["ImageURL"];
}
/// <summary>
/// Retrieve database connection string from Web configuration
/// </summary>
static Product()
{
_connectionString = WebConfigurationManager.ConnectionStrings["StoreString"].ConnectionString;
}
}
}
B)No caso ainda não cheguei nesta parte do curso mas acredito que quando for cadastrar os Produtos na parte admin da pagina products.aspx aja algum formview da mesma forma que a pagina categories como eu faria o campo checkbox para saber se ele é trial ou não sêr gravado no datasource como true ou false já que o campo é do tipo bit
Fico no aguardo e desde já agradeço
GOSTEI 0
Fabio Mans
23/06/2009
Olá Luiz
A)O que eu acrescento em relação ao campo bit Trial na class Products.cs?
Você tem que criar um atributo e propriedas do tipo boolean
B)No caso ainda não cheguei nesta parte do curso mas acredito que quando for cadastrar os Produtos na parte admin da pagina products.aspx
aja algum formview da mesma forma que a pagina categories como eu faria o campo checkbox para saber se ele é trial ou não sêr gravado no
datasource como true ou false já que o campo é do tipo bit
Você precisa de um controle que seja true ou false, neste caso você pode utilizar o CkeckBox, veja um exemplo com SqlDataSource
<asp:FormView ID="FormView1" runat="server" DataKeyNames="Id"
DataSourceID="SqlDataSource1">
<EditItemTemplate>
Id:
<asp:Label ID="IdLabel1" runat="server" Text='<%# Eval("Id") %>' />
<br />
Nome:
<asp:TextBox ID="NomeTextBox" runat="server" Text='<%# Bind("Nome") %>' />
<br />
Senha:
<asp:TextBox ID="SenhaTextBox" runat="server" Text='<%# Bind("Senha") %>' />
<br />
Role:
<asp:TextBox ID="RoleTextBox" runat="server" Text='<%# Bind("Role") %>' />
<br />
Ativo:
<asp:CheckBox ID="AtivoCheckBox" runat="server"
Checked='<%# Bind("Ativo") %>' />
<br />
<asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True"
CommandName="Update" Text="Update" />
<asp:LinkButton ID="UpdateCancelButton" runat="server"
CausesValidation="False" CommandName="Cancel" Text="Cancel" />
</EditItemTemplate>
<InsertItemTemplate>
Nome:
<asp:TextBox ID="NomeTextBox" runat="server" Text='<%# Bind("Nome") %>' />
<br />
Senha:
<asp:TextBox ID="SenhaTextBox" runat="server" Text='<%# Bind("Senha") %>' />
<br />
Role:
<asp:TextBox ID="RoleTextBox" runat="server" Text='<%# Bind("Role") %>' />
<br />
Ativo:
<asp:CheckBox ID="AtivoCheckBox" runat="server"
Checked='<%# Bind("Ativo") %>' />
<br />
<asp:LinkButton ID="InsertButton" runat="server" CausesValidation="True"
CommandName="Insert" Text="Insert" />
<asp:LinkButton ID="InsertCancelButton" runat="server"
CausesValidation="False" CommandName="Cancel" Text="Cancel" />
</InsertItemTemplate>
<ItemTemplate>
Id:
<asp:Label ID="IdLabel" runat="server" Text='<%# Eval("Id") %>' />
<br />
Nome:
<asp:Label ID="NomeLabel" runat="server" Text='<%# Bind("Nome") %>' />
<br />
Senha:
<asp:Label ID="SenhaLabel" runat="server" Text='<%# Bind("Senha") %>' />
<br />
Role:
<asp:Label ID="RoleLabel" runat="server" Text='<%# Bind("Role") %>' />
<br />
Ativo:
<asp:CheckBox ID="AtivoCheckBox" runat="server" Checked='<%# Bind("Ativo") %>'
Enabled="false" />
<br />
<asp:LinkButton ID="EditButton" runat="server" CausesValidation="False"
CommandName="Edit" Text="Edit" />
<asp:LinkButton ID="DeleteButton" runat="server" CausesValidation="False"
CommandName="Delete" Text="Delete" />
<asp:LinkButton ID="NewButton" runat="server" CausesValidation="False"
CommandName="New" Text="New" />
</ItemTemplate>
</asp:FormView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:cnnString %>"
DeleteCommand="DELETE FROM [Colaborador] WHERE [Id] = @Id"
InsertCommand="INSERT INTO [Colaborador] ([Nome], [Senha], [Role], [Ativo]) VALUES (@Nome, @Senha, @Role, @Ativo)"
SelectCommand="SELECT [Id], [Nome], [Senha], [Role], [Ativo] FROM [Colaborador]"
UpdateCommand="UPDATE [Colaborador] SET [Nome] = @Nome, [Senha] = @Senha, [Role] = @Role, [Ativo] = @Ativo WHERE [Id] = @Id">
<DeleteParameters>
<asp:Parameter Name="Id" Type="Int32" />
</DeleteParameters>
<UpdateParameters>
<asp:Parameter Name="Nome" Type="String" />
<asp:Parameter Name="Senha" Type="String" />
<asp:Parameter Name="Role" Type="String" />
<asp:Parameter Name="Ativo" Type="Boolean" />
<asp:Parameter Name="Id" Type="Int32" />
</UpdateParameters>
<InsertParameters>
<asp:Parameter Name="Nome" Type="String" />
<asp:Parameter Name="Senha" Type="String" />
<asp:Parameter Name="Role" Type="String" />
<asp:Parameter Name="Ativo" Type="Boolean" />
</InsertParameters>
</asp:SqlDataSource>
Espero ter ajudado
Fabio
GOSTEI 0
Luiz Franco
23/06/2009
Olá Fabio Galante boa tarde
Você tem que criar um atributo e propriedas do tipo boolean
E como ficariam esses atributos e propriedades na class Product.cs, não teria como me enviar um exemplo?
fico no aguardo e desde já agradeço
GOSTEI 0
Fabio Mans
23/06/2009
Olá Luiz, segue abaixo.
private bool _trial;
public bool Trial
{
get { return _trial; }
set { _trial = value; }
}
Ou com C#3.0
public bool Trial { get; set; }
Fabio
GOSTEI 0
Luiz Franco
23/06/2009
Mas na classe eu só teria que fazer isso ou teria que colocar algo mais no todo do codigo da classe, se teria um exemplo no todo do codigo da classe aonde eu precisaria modificar ou adaptar
Fico no aguardo e desde já agradeço
GOSTEI 0
Fabio Mans
23/06/2009
Basta acrescentar o campo bit para os métodos, e procedures.
GOSTEI 0
Luiz Franco
23/06/2009
Olá Fabio Galante
Vou fazer o seguinte irei adaptar então o campo trial bit na classe product.cs e no próximo feed back, vou ti repassar ele completo para você me dizer se é isso mesmo ok
Fico no aguardo e desde já agradeço
GOSTEI 0
Fabio Mans
23/06/2009
Perfeito, implemente e teste. Aguardo.
GOSTEI 0
Luiz Franco
23/06/2009
Olá Fabio Galante - bom dia
Veja como ficou a implementação do campo Trial que é do tipo bit usado nas store procedures para á classe Product.cs veja como ficou á classe e me corrija se há algum erro ou se é isso mesmo
using System;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using System.Web.Configuration;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace DevMedia.ECommerce
{
///<summary>
///Represents a product and methods for
///working with products
///</summary>
[System.ComponentModel.DataObject]
public class Product
{
private static readonly string _connectionString;
private int _productId;
private int _categoryId;
private string _title;
private string _description;
private decimal _price;
private string _imageurl;
private string _categoryTitle;
private bool _Trial;
public int ProductID
{
get { return _productId; }
set { _productId = value; }
}
public int CategoryID
{
get { return _categoryId; }
set { _categoryId = value; }
}
public string Title
{
get { return _title; }
set { _title = value; }
}
public string Description
{
get { return _description; }
set { _description = value; }
}
public decimal Price
{
get { return _price; }
set { _price = value; }
}
public string ImageURL
{
get { return _imageurl; }
set { _imageurl = value; }
}
public string CategoryTitle
{
get { return _categoryTitle; }
set { _categoryTitle = value; }
}
public bool Trial
{
get { return _Trial; }
set { _Trial = value; }
}
#region Methods
/// <summary>
/// Create a new product
/// </summary>
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Insert, true)]
public static void Insert(int categoryId, string title, string description, decimal price, string imageURL, bool trial)
{
// Initialize command
SqlConnection con = new SqlConnection(_connectionString);
SqlCommand cmd = new SqlCommand("dev_ProductInsert", con);
cmd.CommandType = CommandType.StoredProcedure;
// Initialize parameters
cmd.Parameters.AddWithValue("@CategoryId", categoryId);
cmd.Parameters.AddWithValue("@Title", title);
cmd.Parameters.AddWithValue("@Description", description);
cmd.Parameters.AddWithValue("@Price", price);
cmd.Parameters.AddWithValue("@ImageURL", imageURL);
cmd.Parameters.AddWithValue("@Trial", trial);
using (con)
{
con.Open();
cmd.ExecuteNonQuery();
}
}
/// <summary>
/// Delete an existing product
/// </summary>
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Delete, true)]
public static void Delete(int ProductId)
{
// Initialize command
SqlConnection con = new SqlConnection(_connectionString);
SqlCommand cmd = new SqlCommand("dev_ProductDelete", con);
cmd.CommandType = CommandType.StoredProcedure;
// Initialize parameters
cmd.Parameters.AddWithValue("@ProductId", ProductId);
// Execute command
using (con)
{
con.Open();
cmd.ExecuteNonQuery();
}
}
/// <summary>
/// Update an existing product
/// </summary>
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Update, true)]
public static void Update(int productid, int categoryId, string title, decimal price, string description, string imageUrl, bool trial)
{
Convert.ToDecimal(price);
// Initialize command
SqlConnection con = new SqlConnection(_connectionString);
SqlCommand cmd = new SqlCommand("dev_ProductUpdate", con);
cmd.CommandType = CommandType.StoredProcedure;
// Initialize parameters
cmd.Parameters.AddWithValue("@ProductID", productid);
cmd.Parameters.AddWithValue("@CategoryID", categoryId);
cmd.Parameters.AddWithValue("@Title", title);
cmd.Parameters.AddWithValue("@Price", price);
cmd.Parameters.AddWithValue("@Description", description);
cmd.Parameters.AddWithValue("@ImageURL", imageUrl);
cmd.Parameters.AddWithValue("@Trial", trial);
// Execute command
using (con)
{
con.Open();
cmd.ExecuteNonQuery();
}
}
/// <summary>
/// Select all products from database
/// </summary>
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]
public static List<Product> Select()
{
// Initialize command
SqlConnection con = new SqlConnection(_connectionString);
SqlCommand cmd = new SqlCommand("dev_SelectAllProduct", con);
cmd.CommandType = CommandType.StoredProcedure;
List<Product> results = new List<Product>();
using (con)
{
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
results.Add(new Product(reader));
}
return results;
}
/// <summary>
/// Select all products in a particular category
/// </summary>
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]
public static List<Product> SelectByCategoryId(int categoryId)
{
//Initialize command
SqlConnection con = new SqlConnection(_connectionString);
SqlCommand cmd = new SqlCommand("dev_ProductSelectByCategoryId", con);
cmd.CommandType = CommandType.StoredProcedure;
// Add parameters
cmd.Parameters.AddWithValue("@CategoryId", categoryId);
List<Product> results = new List<Product>();
using (con)
{
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
results.Add(new Product(reader));
}
return results;
}
/// <summary>
/// Select a single product by Id
/// </summary>
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, true)]
public static Product Select(int productId)
{
//Initialize command
SqlConnection con = new SqlConnection(_connectionString);
SqlCommand cmd = new SqlCommand("dev_ProductSelectById", con);
cmd.CommandType = CommandType.StoredProcedure;
// Add parameters
cmd.Parameters.AddWithValue("@ProductId", productId);
Product result = null;
using (con)
{
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read())
result = new Product(reader);
}
return result;
}
/// <summary>
/// Select all products random
/// </summary>
[System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]
public static List<Product> SelectProductRandom()
{
//Initialize command
SqlConnection con = new SqlConnection(_connectionString);
SqlCommand cmd = new SqlCommand("dev_ProductRandom", con);
cmd.CommandType = CommandType.StoredProcedure;
List<Product> results = new List<Product>();
using (con)
{
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
results.Add(new Product(reader));
}
return results;
}
#endregion
/// <summary>
/// Initializes a product from a DataReader
/// </summary>
/// <param name="reader"></param>
public Product(SqlDataReader reader)
{
_productId = (int)reader["ProductID"];
if (reader["CategoryId"] != DBNull.Value)
_categoryId = (int)reader["CategoryID"];
if (reader["CategoryTitle"] != DBNull.Value)
_categoryTitle = (string)reader["CategoryTitle"];
_title = (string)reader["Title"];
_description = (string)reader["Description"];
_price = (decimal)reader["Price"];
_imageurl = (string)reader["ImageURL"];
_Trial = (bool)reader["Trial"];
}
/// <summary>
/// Retrieve database connection string from Web configuration
/// </summary>
static Product()
{
_connectionString = WebConfigurationManager.ConnectionStrings["StoreString"].ConnectionString;
}
}
}
Fico no aguardo e desde já agradeço
GOSTEI 0
Fabio Mans
23/06/2009
private bool _Trial;
public bool Trial
{
get { return _Trial; }
set { _Trial = value; }
}
public static void Insert(int categoryId, string title, string description, decimal price, string imageURL, bool trial)
cmd.Parameters.AddWithValue("@Trial", trial)
cmd.Parameters.AddWithValue("@Trial", trial);
É isso mesmo, chegou a dar algum erro??
GOSTEI 0
Luiz Franco
23/06/2009
Olá Fabio Galante
Ainda não tive tempo de testar, pois ainda não entrei na lição onde vc coloca os objetos desta classe na area admin de inserção, edição e deleção de produtos, mas se o que vc disse está certo assim que testar ti retorno
mas aproveitando por exemplo se eu cria-se um campo a mais para esta pagina que deverei criar no qual será o nome dos usuários ou clientes cadastrados via membership em meu site, pois alem de produtos, haverá serviços e me oriente mas acho melhor usar a mesma table produtos para serviços , só que tem serviços prontos meus proprios e serviços orçados pelos clientes a minha ideia seria criar um painel do cliente usando a mesma regra da pasta de fechamento da compra com as regras e funções definidas no membership e utilizar a mesma table produtos mas com uma procedure alternativa baseado no retorno do usuario do member ship onde apareceriam os serviços na catalogo criado por mim em resposta á aquele determinado usuario
Tipo
Logica 1 - O Cliente cadastrado solicita o orçamento do serviço
Sequencia da Logica - Administrativamente incluio o valor em resposta do serviço, item e descrição daquele serviço á aquele determinado usuário como se eu estivesse incluindo um produto da table produtos mas com o campo username = ao username do cliente cadastrado
Logica 3 parte - No painel do cliente - após o mesmo se logar via membership como e pedido da mesma forma na pasta de fechamento do carrinho, seria criado um catalogo de produtos(na realidade serviços) alternativo somente com os serviços da categoria Orçamento á sêr criado mas que tb no procedure teria que ter o where = username
A duvida aí seria no source dos outros catalogos das paginas abertas produtos.aspx e serviços.aspx(sem orçamento) seria como não mostrar o campo username ou o mais lógico seria construir mais uma procedure e um outro metodo na classe produtos e categorias
Fico no aguardo e desde já agradeço
GOSTEI 0
Fabio Mans
23/06/2009
Luiz podemos resumir sua pergunta. Eu não entendi nada, o que o Trial tem a ver com o cadastro via membership?
Podemos resolver sua dúvida por partes?
Obrigado.
mas
aproveitando por exemplo se eu cria-se um campo a mais para esta pagina
que deverei criar no qual será o nome dos usuários ou clientes
cadastrados via membership em meu site
GOSTEI 0
Luiz Franco
23/06/2009
Olá Fabio Galante
não tem nada a haver com o campo trial que já esta posto
O que eu quis dizer é - terá uma área de minha loja onde é feito um orçamento de serviços
Tipo um usuário cadastrado na minha loja via form de contato ele fáz a solicitação por exemplo de um orçamento para a criação de site onde recebo este orçamento via e-mail com o username já cadastrado de meu cliente via membership
Administrativamente (lado administrativo da loja) sob a mesma forma que irei aprender a inserir os produtos e serviços cadastrados iria têr uma terceira categoria (alem de produtos e serviços que seria orçamentos) onde eu teria que cadastrar numa mesma table produtos (que vale para produtos e serviços) em um campo username á sêr criado nesta table o nome do username ou cliente que solicitou tal orçamento onde eu cadastraria a resposta para ele como se fosse um produto ou item do catalogo de produtos ou serviços
A unica diferença é que em painel proprio e depois de logado este cliente veria um outro catalogo de ítens de orçamentos que eu já lhe haveria respondido como se fosse a criação de um item caso ele concorde no painel dele ele fecharia a compra ou não
só que aí este catalogo tem que sêr chamado acredito eu por uma select ou outra procedure where usuario (da table produtos) é igual a usuário que esta logado
Mas o que eu exatamente perguntei não seria isso
Mas isto
A)O mais lógico é criar este campo username na table produtos e nas paginas produtos e serviços(sem orçamento) tem como ocultar o campo do usuário já que seria chamado pela select(procedure) normal de produtos e serviços para todos verem e outra procedure seria criada para exibição dos serviços orçados no painel do usuario
B)Ou o mais lógico seria criar tables e procedures a parte parecida com SelectAll Products mas para cada situação ou seja serviços e serviços orçados onde para cada tipo de pagina apareceriam todos os campos
Estas é que são as minhas duvidas em relação áo qual melhor procedimento A ou B ou o que vc sugeria neste caso
Fico no aguardo e desde ja agradeço
GOSTEI 0
Fabio Mans
23/06/2009
Olá Luiz eu acredito que a melhor maneira é você criar uma tabela chamada orçamentos relacionada com o ID (Guid) do usuário. Assim quando ele se logar você consegue trazer os orçamentos.
Espero ter entendido sua pergunta, se não for isso me fale.
Fabio
A)O mais lógico é criar este campo username na table produtos e nas
paginas produtos e serviços(sem orçamento) tem como ocultar o campo do
usuário já que seria chamado pela select(procedure) normal de produtos
e serviços para todos verem e outra procedure seria criada para
exibição dos serviços orçados no painel do usuario
B)Ou o mais lógico seria criar
tables e procedures a parte parecida com SelectAll Products mas para
cada situação ou seja serviços e serviços orçados onde para cada tipo
de pagina apareceriam todos os campos
GOSTEI 0
Luiz Franco
23/06/2009
Olá Fabio Galante então pelo que vc me disse seria criar uma table Orçamentos com os mesmos campos da Table Produtos qdo eu responder o orçamento deles via area admin e já embutir no catalogo virtual de orçamentos, mas aí com uma table separada de catalogo de produtos ou servicos pelo que entendi á sua resposta seria isso?
Fico no aguardo e desde já agradeço
GOSTEI 0
Fabio Mans
23/06/2009
Isso porém orçamento difere por ter o ID do cliente, certo?
GOSTEI 0
Luiz Franco
23/06/2009
Olá Fabio
Ok, mas por exemplo eu não poderia utilizar este ID do Cliente (ou UserName do memberShip) como um campo interno á essa table gêmea dev_orcamento com os mesmos campos da table produtos, mas acrescentando á mesma um campo adicionala ID do Cliente (ou UserName do membership) no caso ou o que vc me recomendaria ...algum link ou artigo ou video que desse esse exemplo
Fico no aguardo e desde ja agradeço
GOSTEI 0
Fabio Mans
23/06/2009
Pode sim, crie as tabelas e passo o script que eu vejo para você, sobre artigo ou vídeo eu não conheço, porque é bem específico para o que você quer fazer.
GOSTEI 0
Devmedia
23/06/2009
Luiz, podemos encerrar o chamado?
GOSTEI 0
Luiz Franco
23/06/2009
O Autor tinha me dito na resposta anterior que ia me enviar uns scripts de table por isso não encerrei!!!No aguardo
GOSTEI 0
Fabio Mans
23/06/2009
Olá Luiz, eu disse que aguardo você criar as tabelas e que eu vejo o script.
Pode sim, crie as tabelas e passo o script que eu vejo para você, sobre artigo ou vídeo eu não conheço, porque é bem específico para o que você quer fazer.
GOSTEI 0
Luiz Franco
23/06/2009
Me desculpe me perdi he he acontece com programadores qdo estão em desenvolvimento vou fz as tabelas mas a mesma tem que sêr com os campos parecidos com a de produtos correto?
GOSTEI 0
Fabio Mans
23/06/2009
Luiz você precisa avalir a sua necessidade, orçamento tem a ver com produto? Se sim pode ser parecido.
GOSTEI 0
Luiz Franco
23/06/2009
Ok então assim que eu criar a table eu posto aqui ok
aproveitando respondi com video o chamado do Capitulo XI aquele da drop downlist usando o CamtasiaStudio 6.02 e seguindo todos os procedimentos de colocação do video na consultoria do devmedia, porem aqui na minha maquina tanto no IE 8.0 como no Firefox ao clicar na setinha do video da pagina do video não consegui vêr o video ...gostaria de saber se vc conseguiu pois a duvida daquele post continua e eu tentei explanar pelo video se não conseguiu poderia perguntar ao pessoal da consultoria como fáz pra publicar utilizando a nova versão do camtasia
Fico no aguardo e desde já agradeço
GOSTEI 0
Fabio Mans
23/06/2009
Coloca o vídeo em algum disco virtual eu baixo e te falo.
Fabio
GOSTEI 0
Luiz Franco
23/06/2009
Olá vou postar aqui e no tópico correto do link abaixo no qual se refere a duvida do video ok
Aqui o link do Topico da duvida
https://www.devmedia.com.br/suporte/viewtopic.asp?id=5863
Aqui o link do Video á duvida que me falta veja se agora consegue visualizar fico no aguardo e desde já agradeço
http://www.screencast.com/t/9FSHoKgeF
em breve postarei a Table dev_orcamento aqui para vc
GOSTEI 0
Luiz Franco
23/06/2009
Olá Fábio Galante
Agora voltando a natureza deste tópico posto aqui como seria então a table dev_orcamento
CREATE TABLE [dbo].[dev_Orcamento](
[OrcamentoID] [int] IDENTITY(1,1) NOT NULL,
[CategoryID] [int] NOT NULL,
[UserName] [nvarchar](256) NOT NULL,
[Title] [nvarchar](256) NOT NULL,
[Description] [nvarchar](max) NOT NULL,
[Price] [smallmoney] NOT NULL,
[ImageURL] [nvarchar](256) NOT NULL,
[OrcamentoLiberado] [bit] NULL,
CONSTRAINT [PK_dev_Orcamento] PRIMARY KEY CLUSTERED
(
[OrcamentoID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Lembrando que - administrativamente por meio de programação ou manualmente eu cadastrarei o UserName que solicitou o orçamento e quando eu setar liberado = true o usuário terá o ítem da lista orçamentária em seu painel próprio após o mesmo estar logado
o painel do mesmo estaria numa pasta do tipo ckeckout mas na verdade seria o catalogo dos serviços pelo qual ele solicitou tal orçamento - na hora que ele se logar uma procedure em select do tipo SelectAllProducts mostrará os itens orçados e liberados apenas do usuario logado com a resposta e o valor orçamentário já respondido bastanto apenas para ele clicar em fechar para comprar ou não o serviço indo para o carrinho em fechamento esta é a minha lógica fico no aguardo agora então do vosso script para vêr se as informações se cruzam qdo estiver pronto eu crio um vídeo para ti mostrar
fico no aguardo e desde já agradeço
GOSTEI 0
Fabio Mans
23/06/2009
É isso mesmo Luiz, eu só não gosto de utilizar o username, para o tipo de sistema que está fazendo um não utilizaria Membership, e por que não grava o guid ao invés de username?
Fabio
CREATE TABLE [dbo].[dev_Orcamento](
[OrcamentoID] [int] IDENTITY(1,1) NOT NULL,
[CategoryID] [int] NOT NULL,
[UserName] [nvarchar](256) NOT NULL,
[Title] [nvarchar](256) NOT NULL,
[Description] [nvarchar](max) NOT NULL,
[Price] [smallmoney] NOT NULL,
[ImageURL] [nvarchar](256) NOT NULL,
[OrcamentoLiberado] [bit] NULL,
CONSTRAINT [PK_dev_Orcamento] PRIMARY KEY CLUSTERED
(
[OrcamentoID] ASC
)WITH
(PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF,
ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GOSTEI 0
Luiz Franco
23/06/2009
Olá Fabio Galante, vc quis dizer colocar o GUID é o ID do usuário do MemberShip no lugar do UserName e se fôr isso qual o melhor tipo de campo que eu teria que modificar o username na table ou continua com nvarchar
Fico no aguardo e desde já agradeço
GOSTEI 0
Fabio Mans
23/06/2009
Char(36) limpando os traços.
Você grava o Guid e quando precisar faz uma busca.
Entendeu?
GOSTEI 0
Luiz Franco
23/06/2009
Olá Fabio Galante o que vc quis dizer com
A)Limpando os traços?
B)E quando precisar faz uma busca?
Fico no aguardo e desde já agradeço
GOSTEI 0
Fabio Mans
23/06/2009
Desculpa como você está utilizando Membership utilize com o traço mesmo.
string strUser = Membership.GetUser().ToString();
Guid id = (Guid)Membership.GetUser("userName").ProviderUserKey;
Mas eu quando vou trabalhar com Guid eu limpo os traços como no exemplo abaixo. E gravo com char(36)
protected void Page_Load(object sender, EventArgs e)
{
string usuario = Guid.NewGuid().ToString().Replace("-", string.Empty);
Response.Write(usuario);
}
Abraços
Fabio
GOSTEI 0
Luiz Franco
23/06/2009
Ok irei testar e assim que puder lhe dou um retorno provisoriamente pode dar o chamado como concluído dpois eu reabro e tenho novidades vou fzer curso na KA Solution do centro em sampa a partir do outro sabado para Pacote de Certificação MCPD.Net 3.5 ASP.NET
GOSTEI 0
Fabio Mans
23/06/2009
Muito bom você vai gostar. Eu fiz este curso e a prova, mas no Morumbi.
Abraços
Fabio
GOSTEI 0
Luiz Franco
23/06/2009
Ok eu coloquei esta duvida concluída pois irei demorar um pouco para chegar nesta parte e criar a adaptação para a parte de orçamentos mas qq coisa eu reabro o post
enquanto a Ka Solution he he quem sabe se a gente não se cruza por lá ou vc me dá umas dicas rssssss
vlw
GOSTEI 0