Ir para conteúdo
Fórum Script Brasil

quintelab

Veteranos
  • Total de itens

    1.891
  • Registro em

  • Última visita

Tudo que quintelab postou

  1. Este artigo traz um assunto simples mas que quase todos os desenvolvedores um dia necessitaram ou necessitarão fazer, que é ler um arquivo de texto. Temos um arquivo de texto chamado Executaveis.txt que esta no mesmo nível do nosso formulário. Este arquivo possui cinco linhas com caminhos de alguns softwares. Arquivo texto: No nosso formulário iremos utilizar apenas o Page_Load para o nosso teste. Para trabalhar com arquivo é necessário importar a classe IO Imports System.IO No Page_Load do formulário primeiro iremos declarar uma variável do tipo string que irá receber o caminho completo do nosso documento texto. Dim vArquivo As String = Server.MapPath("Executaveis.txt") É interessante que seja feita uma verificação para ter certeza que o arquivo existe no caminho indicado. Dim vArquivo As String = Server.MapPath("Executaveis.txt") If File.Exists(vArquivo) Then End If Através da classe File utilizada acima podemos trabalhar com vários métodos como Copy, Create, Delete e o Exists. Iremos trabalhar com a classe StreamReader que é uma implementação da classe IO, e foi desenvolvida justamente para receber caracteres. Declaramos a variável reader. Dim vArquivo As String = Server.MapPath("Executaveis.txt") If File.Exists(vArquivo) Then Dim reader As New StreamReader(vArquivo) End If A classe StreamReader possui uma propriedade e alguma funções. A sua propriedade é o EndOfStream que lê o do primeiro ao último caracter do arquivo. Além desta propriedade a classe possui alguma propriedades, onde as principais são: Close - responsável por fechar os objetos que utilizam a classe StreamReader Dispose - responsável por destruir todos os recursos utilizados pelo objeto System.IO.TextReader Read - responsável por ler todos os caracter por caracter ReadLine - responsável por ler determinada linha do inicio ao fim ReadToEnd - responsável por fazer a leitura de todo o documento Agora que conhecemos as principais funções da classe, iremos criar um while para percorrer todo o arquivo e a cada linha que ele encontre ele escreva em nosso formulário: Dim vArquivo As String = Server.MapPath("Executaveis.txt") If File.Exists(vArquivo) Then Dim reader As New StreamReader(vArquivo) End If Do While Not reader.EndOfStream Response.Write(reader.ReadLine & "<br>") Loop E no final do nosso Loop é necessário fechar nosso arquivo utilizando a propriedade já explicada Close: reader.Close() No final então, nosso código ficou da seguinte forma: Imports System.IO Partial Class _Default Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim vArquivo As String = Server.MapPath("Executaveis.txt") If File.Exists(vArquivo) Then Dim reader As New StreamReader(vArquivo) Do While Not reader.EndOfStream Response.Write(reader.ReadLine & "<br>") Loop reader.Close() End If End Sub End Class E o resultado em nossa pagina: Versão em c#: http://www.quintelab.com.br/ShowArtigos.asp?codigo=5 Espero que seja útil. Abraços...
  2. Nunca trabalhei com o MySql mas sempre indico este artigo do macoratti: http://www.macoratti.net/net_msql.htm Abraços...
  3. quintelab

    Setup

    Ae eu não tenho conhecimento, acho melhor postar aqui: http://scriptbrasil.com.br/forum/index.php?showforum=87 Abraços...
  4. quintelab

    Setup

    O que eu imagino é o seguinte, ele deve estar procurando esta pasta imagens na pasta do windows ou do framework. Passe o caminho físico completo da sua pasta imagens, para deixar de forma dinâmica, você pode pegar o caminho do exe da sua aplicação da seguinte forma: Application.StartupPath Resumindo, tente o seguinte: e.Graphics.DrawImage(Image.FromFile(Application.StartupPath & "\imagens\" & "frango2.png"), 200, 68) Abraços...
  5. Uma dúvida que já surgiu algumas vezes por diferentes usuário aqui no fórum e que eu tive quando comecei a desenvolver com .NET. O artigo mostra como chamar uma página de pesquisa dinâmica através de uma pop up e retornar os dados do valor selecionado na GridView para o formulário pai. No formulário iremos colocar apenas dois TextBox. O primeiro terá o ID de txtId e o segundo TextBox terá o ID de txtDescricao. No código VB adicionaremos o atributo ao TextBox txtId que irá chamar a função JavaScript que abrirá a pop up. Código VB: Partial Class _Default Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load txtId.Attributes.Add("onkeydown", "java script:Pesquisa('txtId', 'txtDescricao', 'SELECT CODIGO, NOME FROM USUARIOS');") End Sub End Class Agora crie um arquivo do tipo JScript.js. Vamos chamá-lo de funcoes.js. O Código do nosso arquivo funcoes é simples, criaremos uma função com o nome de Pesquisa que receberá os parâmetros necessários para montar uma GridView e chamar o nosso arquivo pop up. JsScript: // JScript File function Pesquisa(RecebeId, RecebeDesc, Sql){ if(event.keyCode == 113) { window.open('Pesquisa.aspx?recebeId='+ RecebeId +'&recebeDesc='+ RecebeDesc +'&sql='+ Sql +'', 'Janela', 'menubar=no,scrollbars=yes,statusbar=yes,width=650, height=500'); } } A nossa função pesquisa possui três parâmetros que são os dois campos de retorno no formulário pai e o select que irá buscar os dados. A linha de comando if(event.keyCode == 113) { verifica se o usuário pressionou a tecla F2, este será o nosso atalho para chamar a tela de pesquisa. É necessário referenciar o nosso arquivo Js no HTML do formulário pai. Por fim o código HTML do nosso formulário ficará assim: <%@ Page Language="V B" AutoEventWireup="false" CodeFile="Default.aspx.v b" 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>Página de Pesquisa - Por Bruno Quintella</title> <script language="javascript" src="funcoes.js"></script> </head> <body> <form id="form1" runat="server"> <div> <asp:TextBox ID="txtId" runat="server" Width="70px"></asp:TextBox> <asp:TextBox ID="txtDescricao" runat="server" Width="350px"></asp:TextBox></div> </form> </body> </html> Criaremos agora o formulário de pesquisa, que chamaremos de Pesquisa.aspx. No formulário de pesquisa teremos apena uma GridView com a opção Auto-generate fields marcada e uma coluna com um CommandField do Tipo SELECT. O código html da nossa página de pesquisa ficará da seguinte forma: <%@ Page Language="V B" AutoEventWireup="false" CodeFile="Pesquisa.aspx.v b" Inherits="Pesquisa" %> <!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 id="Head1" runat="server"> <title>Página de Pesquisa - Por Bruno Quintella</title> </head> <body alink="#000000" bottommargin="0" leftmargin="0" link="#000000" rightmargin="0" topmargin="0" vlink="#000000" style="text-align: center"> <form id="form1" runat="server"> <asp:GridView ID="gv" runat="server" BackColor="White" BorderColor="#999999" BorderStyle="None" BorderWidth="1px" CellPadding="3" Font-Names="Verdana" Font-Size="XX-Small" GridLines="Vertical" Width="569px" AllowPaging="True" PageSize="15"> <FooterStyle BackColor="#CCCCCC" ForeColor="Black" /> <RowStyle BackColor="#EEEEEE" ForeColor="Black" HorizontalAlign="Left" /> <SelectedRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" /> <PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Left" Font-Names="Verdana" Font-Size="XX-Small" /> <HeaderStyle BackColor="#000084" Font-Bold="True" ForeColor="White" /> <AlternatingRowStyle BackColor="Gainsboro" /> <Columns> <asp:CommandField SelectText="Selecionar" ShowSelectButton="True" /> </Columns> </asp:GridView> </form> </body> </html> No código VB do formulário de pesquisa iremos trabalhar com o Page_Load para montar nossa grid com todos os dados: Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not IsPostBack Then Dim StringCon As New SqlConnection("Data Source=BRUNO\SQLEXPRESS;Initial Catalog=ForumImasters;User ID=sa; Pwd=senha;") StringCon.Open() Dim Dt As SqlDataAdapter Dim Ds As New DataSet Dt = New SqlDataAdapter(Request("sql"), StringCon) Dt.Fill(Ds, "dados") Dt.Dispose() StringCon.Close() gv.DataSource = Ds.Tables("dados").DefaultView gv.DataBind() End If End Sub Para retonar os dados ao formulário pai, iremos utilizar o evento SelectedIndexChanged da GridView, neste evento iremos utilizar um JavaScript que irá alimentar os TextBox do formulário pai e logo em seguida fechar a janela pop up. Desta forma, fica assim nosso evento: Protected Sub gv_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles gv.SelectedIndexChanged Response.Write("<script language=""javascript"">") Response.Write("function returnValue(idValue, descValue) {") Response.Write("recebeId = '" & Request("recebeId") & "';") Response.Write("recebeDesc = '" & Request("recebeDesc") & "';") Response.Write("var vEval = ""opener.document.form1."" + recebeId;") Response.Write("var objName = eval(vEval);") Response.Write("objName.value = idValue;") Response.Write("var vEval = ""opener.document.form1."" + recebeDesc;") Response.Write("var objName = eval(vEval);") Response.Write("objName.value = descValue;") Response.Write("vEval = ""opener.document.form1"";") Response.Write("var objForm = eval(vEval);") Response.Write("close();") Response.Write("}") Response.Write("java script:returnValue('" & gv.SelectedRow.Cells(1).Text & "', '" & gv.SelectedRow.Cells(2).Text & "')") Response.Write("</script>") End Sub Repare que criamos e alimentamos duas variáveis que recebem os parâmetros que passamos em nossa função Pesquisa, são elas a recebeId e recebeDesc. No evento da GridView, escrevemos nossa função JavaScript com o Response.Write e depois chamamos a função passando como parâmetros as duas colunas da nossa gridView, que irá alimentar os TextBox do formulário pai e logo em seguida fechar a pop up. Versão c#: http://www.quintelab.com.br/ShowArtigos.asp?codigo=6 Créditos: quintelab - Bruno Quintella Abraços...
  6. Bom, já respondi uma questão dessa aqui no fórum, então resolvi escrever um artigo sobre o assunto. Artigo que já estará no meu site quando for pro ar. :grin: Este artigo mostra como formatar uma coluna da GridView deixando a propriedade Auto-Generate Fields como True. Primeiramente criei uma tabela com o nome de MERCADORIAS nela foram criados apenas quatro campos, são eles: MERCADORIA_ID (int), MERCADORIA(nvarchar(50)), preço(numeric(18,2)) e DATA_CADASTRO(datetime). Foram inseridos dois registros. Criaremos agora nosso formulário e nele iremos apenar adicionar uma GridView, não alterei nenhuma propriedade, o código HTML ficou da seguinte forma: <asp:GridView ID="GridView1" runat="server"> </asp:GridView> Neste exemplo utilizei o banco de dados Sql Server e também iremos trabalhar com a classe DataSet. Para o nosso artigo var ser necessário importar duas classes. Imports System.Data Imports System.Data.SqlClient No Page_Load do formulário vamos montar nossa Grid com os dados do banco. Dim con As New SqlConnection("Data Source=QUINTELAB\SQLEXPRESS;Initial Catalog=Teste;User ID=sa; Pwd=senha;") con.Open() Dim da As New SqlDataAdapter("SELECT * FROM MERCADORIAS", con) Dim ds As New DataSet da.Fill(ds, "MERCADORIAS") da.Dispose() con.Close() GridView1.DataSource = ds.Tables("MERCADORIAS").DefaultView GridView1.DataBind() No código acima criamos uma conexão com o nosso banco em Sql Server, um DataAdapter e um DataSet, depois de alimentado nosso DataSet. Populamos o nosso GridView com este DataSet. Até agora, com o código, os nossos registros já podem ser visualizados em nossa Grid, mas sem formatação alguma. Agora vamos tratar em nossa Grid como formatar nossa coluna preço e nossa coluna DATA_CADASTRO. Iremos trabalhar com o evento RowDataBound da Grid. Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim vPreco As String = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "preço")) vPreco = String.Format("{0:C2}", Convert.ToDouble(vPreco)) e.Row.Cells(2).Text = vPreco Dim vData As String = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "DATA_CADASTRO")) vData = String.Format("{0:d}", Convert.ToDateTime(vData)) e.Row.Cells(3).Text = vData End If End Sub Acima temos o nosso evento RowDataBound, primeiro fiz uma verificação para ter certeza que a linha é do tipo DataRow, pois temos ainda outros tipos como o Footer e o Header. Depois de feita essa verificação foram declaradas as variáveis vPreco e vData que recebem respectivamente os campos do banco de dados preço e DATA_CADASTRO. Após ter preenchido nossas variáveis iremos formatá-las conforme a nossa necessidade, formatando a variável vPreco com o Tipo Currency e já convertendo pro tipo Double. Formatamos a variável vData para mostrar apenas a data menosprezando a hora e convertendo para o tipo DateTime. Depois que as variáveis já possuem os valores formatados, basta igualar nossas colunas da Grid a suas respectivas variáveis. Foi utilizado o índice da coluna pois coincide com o indice dos campos em nossa query. Por fim nosso código completo fica da seguinte forma: Imports System.Data Imports System.Data.SqlClient Partial Class _Default Inherits System.Web.UI.Page Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim con As New SqlConnection("Data Source=QUINTELAB\SQLEXPRESS;Initial Catalog=Teste;User ID=sa; Pwd=senha;") con.Open() Dim da As New SqlDataAdapter("SELECT * FROM MERCADORIAS", con) Dim ds As New DataSet da.Fill(ds, "MERCADORIAS") da.Dispose() con.Close() GridView1.DataSource = ds.Tables("MERCADORIAS").DefaultView GridView1.DataBind() End Sub Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound If e.Row.RowType = DataControlRowType.DataRow Then Dim vPreco As String = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "preço")) vPreco = String.Format("{0:C2}", Convert.ToDouble(vPreco)) e.Row.Cells(2).Text = vPreco Dim vData As String = Convert.ToString(DataBinder.Eval(e.Row.DataItem, "DATA_CADASTRO")) vData = String.Format("{0:d}", Convert.ToDateTime(vData)) e.Row.Cells(3).Text = vData End If End Sub End Class E com o código acima, temos o seguinte resultado: Versão em c#: http://www.quintelab.com.br/ShowArtigos.asp?codigo=4 Espero que seja útil. Abraços...
  7. Dificil de entender, o processo comum é dar o publish web site, pegar os arquivos gerados, jogar no servidor e criar um diretório virtual apontando para aplicação. Agora se não da nenhum erro e de repente vocês utilizam um processo diferente, fica dificil ajudar. Poste a url do site. Abraços...
  8. Coloque o DataSet como retorno e deixe essas linhas: Grid.DataSource = NomeSeuMétodo; Grid.DataBind(); No formulário onde esta a grid. Abraços...
  9. Rubiz sem up no tópico é contra as regras. Qual erro esta gerando? Foi criado um diretório virtual apontando para a aplicação? Abraços...
  10. quintelab

    VISUAL STUDIO 2008

    Estranho, pois o XML Schema Explorer normalmente fica junto com a aba de Propriedades. E o processo é o mesmo do 2005. Abraços...
  11. quintelab

    VISUAL STUDIO 2008

    Quando clica em View -> Server Explorer tem que aparecer não tem configuração nenhuma. Normalmente fica no lado esquerdo superior a aba. Vá no menu Window -> Reset Window Layout e tente de novo exibir o Server Explorer. Abraços...
  12. Ta ae um exemplo, basta você trocar seu command por um insert private _cn as New MySqlConnection("data source=server; database=databaseName; user id=username; password=password") private cmd as new MySqlCommand With cmd .Command = "Insert Into SuaTabela (CampoID, Campo) values ("1", "quintelab")" .CommandType = CommandType.Text .Connection = cn End With cn.Open() cmd.ExecuteNonQuery cn.Close Abraços...
  13. Qual processo esta usando para publicar sua aplicação? Abraços...
  14. Mas o que chega a acontecer no cliente? Eu acredito que seja necessário ter o Excel, mas não tenho certeza da informação. Abraços...
  15. Zarak Chromor seja bem vindo ao Fórum Script Brasil, de uma olhada em nossas regras: Regras do Fórum Script Brasil De uma olhada nesse artigo: http://www.macoratti.net/net_msql.htm Abraços...
  16. quintelab

    Setup

    De uma olhada nesse artigo: http://www.macoratti.net/vbn_pack.htm Abraços...
  17. Veja se o resultado bate com o que esta procurando: DateTime dt1 = Convert.ToDateTime("01/01/1970"); DateTime dt2 = DateTime.Now; object teste = (dt2 - dt1).TotalMilliseconds; Abraços...
  18. quintelab

    CreateObject

    Se for uma aplicação que aceita parâmetro de entrada é possível sim, por exemplo: Process.Start("c:\\Aplicacao.exe", "argumento1 argumento2"); Abraços...
  19. Não cheguei a testar seu código, mas olhando por cima eu não consegui encontrar onde poderia estar o problema. Normalmente problemas com o navegador ocorrem devido a JavaScript, por acaso esta utilizando? Abraços...
  20. luckinrio seja bem ao Fórum Script Brasil, de uma olhada em nossas regras: Regras do Fórum A propriedade ValidationGroup do seu botão esta definida como login2 já testou para ver se os requisitos deste grupo estão sendo cumpridos? De repente esta acontecendo ao contrário, o IE esta funcionando corretamente bloqueando o botão e o firefox não esta fazendo a validação. Faça o teste e poste aqui o resultado. Abraços...
  21. quintelab

    VB.NET windows Service

    De uma olhada neste site: http://www.connectionstrings.com/ Abraços...
  22. Windows ainda não é muito minha praia. Mas já tentou métodos como o Close e o Dispose?? Abraços...
  23. Seu código esta muito grande, fica dificil analisar. De uma olhada nesse link e veja se te ajuda: http://forums.microsoft.com/msdn-br/ShowPo...7&SiteID=21 Abraços...
  24. Se alguém quiser desafiar: http://quintelab.labrute.fr
  25. quintelab

    VB.NET windows Service

    Qual é a linha 33 e a55? Abraços...
×
×
  • Criar Novo...