Jump to content


felipecm's Content

There have been 84 items by felipecm (Search limited from 05/05/2023)



Ordernar por                Order  

#659221 Facilitar Procedimentos Em Asp.net

Posted by felipecm on 08/11/2005, 20:06 in .NET

Boas, eu estou a fazer um programa de facturação em asp.net,
e uso frequentemente códigos como este:

Public Function GetDados(ByVal sql As String) As DataSet
        Try
            Dim conn As New System.Data.SqlClient.SqlConnection(conexao)
            Dim da As New System.Data.SqlClient.SqlDataAdapter(sql, conn)
            Dim ds As New DataSet
            conn.Open()
            da.Fill(ds, "dados")
            conn.Close()
            Return ds
        Catch ex As System.Data.SqlClient.SqlException
            Throw
        End Try
    End Function

Como é que eu posso fazer para usar esta função em várias paginas sem ter de de escrevê-la sempre nessas paginas?

Se alguém souber explicar-me eu agradeço, comecei agora a apreender aprender isto.

Max

Faça assim...

Crie uma classe.. no teu projeto ou num projeto auxilir Class Library.

Public Class DAL
  Public Function GetDados(ByVal sql As String) As DataSet
        Try
            Dim conn As New System.Data.SqlClient.SqlConnection(conexao)
            Dim da As New System.Data.SqlClient.SqlDataAdapter(sql, conn)
            Dim ds As New DataSet
            conn.Open()
            da.Fill(ds, "dados")
            conn.Close()
            Return ds
        Catch ex As System.Data.SqlClient.SqlException
            Throw
        End Try
    End Function
End Class

E pra usar em cada pagina, instancie o objeto da classe e utilize o metodo, como segue:

Dim objDAL as New DAL

dsRet = objDAL.GetDados(....)



#657071 Evento De Um Botão

Posted by felipecm on 02/11/2005, 11:51 in .NET

Aee parceiro, funciona parcialmente, hehe, se eu colocar a linha


se eu fizer isso que vc disse dentro da sub Page_Load do webform funciona.

porem se eu fizer isso dentro do evento click de algum botão estático, por exemplo, não funciona. Tipo

tenho um botão na tela, nome: "bt", estático colocado normalmente no form.

Private Sub Bt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bt.Click
        Dim btn As New Button
        btn.ID = "BTHB"
        Page.FindControl("Form1").Controls.Add(btn)
       
        AddHandler CType(Page.FindControl("BTHB"), Button).Click, New EventHandler(AddressOf BtDinamico_Click)
End Sub

tenho a sub BtDinamico_Click que somente escreve algo na tela, alem disso um brake point para o debug parar ali se passar por ali.

Mas dessa forma não funciona... agora se eu colocar o mesmo código

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim btn As New Button
        btn.ID = "BTHB"
        Page.FindControl("Form1").Controls.Add(btn)
       
        AddHandler CType(Page.FindControl("BTHB"), Button).Click, New EventHandler(AddressOf BtDinamico_Click)
End Sub

porem dentro do evento page load , Ai sim funciona!!
Valeu denovo brother vc ta sendo um grande parceiro,
Abraços
Hebinho

Bom.. nunca criei EventHandlers dinamicos em Botoes.. mas 'e meio estranho

Tenta somente usar essa linha de AddHandler:
AddHandler btn.Click, AddressOf BtDinamico_Click

e na sub passe ela assim:
Private Sub BtDinamico_Click (ByVal sender As System.Object, ByVal e As System.EventArgs)
  'Code
End Sub

Se nao funcionaiar, experimenta criar uma funcao rodando em Page_Load que varra esses buttons criados dinamicamente e adicione os handlers atraves de alguma caracteristica especifica dos Buttons PreFabs.
For Each obj As Control in Page.FindControl("Form1").Controls
  ' CommandButtons que comecem com BTH (somente um exemplo)
  If GetType(obj) Is Button And obj.Id.Substring(0, 3) = "BTH" Then 
    AddHandler obj.Click, AddressOF BtDinamico_Click
  End If
Next

Nao me recordo bem se esse foreach funciona dessa forma, mas alguma coisa do tipo deve resolver.



#656985 Evento De Um Botão

Posted by felipecm on 01/11/2005, 23:29 in .NET

Pessoal,

Alguem pode me ajudar, imagine que eu tenha um botão BT1 estático no form, o clique desse botão cria um novo botão BT2, esse criado dinamicamente, em tempo de execução. como faço para setar o evento desse segundo botão BT2 para por exemplo escrever ola na tela?

estou usando vb.net

Muito obrigado

Oh soh.. vc tem q adicionar um evento a ele.. eu costumo fazer isso usando AddHandler


Se eu nao me engano a sintaxe do AddHandler eh :
AddHandler Control.Evento, AddressOf Metodo

Entao .. acho q vc tenta uns eskema assim:

AddHandler BT2.Click, AddressOf BtDinamico_Click

E ai cria uma sub chamada BtDinamico_Click que tenha os parametros s as sender e e As EventArgs.



#655858 Mudando A Posição De Um Textbox Dinamicamente

Posted by felipecm on 29/10/2005, 18:26 in .NET

Pessoal, estou tentando fazer um sistema usando metadados, estou usando ASP.NET com VB, eu até crio o TextBox dinamicamente, porém não consigo movimentá-lo na tela.

Dim TxtBox As New TextBox
TxtBox.Text = "Salvar"
Page.FindControl("Form1").Controls.Add(TxtBox)

Aqui está o código que uso para criar, dinamicamente o TexBox na tela, preciso movimenta-lo, para o lada para outro, para cima para baixo, coloca-lo no centro da página, e não tenho idéia de como seja feito.

Alguém Poderia me AJUDAR?

Abraço pessoal!

Antonio Heber

Cara .. o q eu faria seria o seguinte.. criaria a estrutura dentro de uma table server.. e inseria o controle dentro da Table e nao dentro do Form.


Ex:
tbLayout.Rows(2).Cells(1).Controls.Add(xxxx)



#654879 Largura De Coluna No Datagrid (vb.net)

Posted by felipecm on 26/10/2005, 22:35 in .NET

No VB.Net (Windows Application Project), existe uma forma de personalizar a largura de cada coluna individualmente? Existe a propriedade PreferredColumnWidth mas isso se aplica a todas as colunas.
Alguém pode me dar uma forcinha aí?

Cara.. olha soh.. no modo design mesmo vc consegue alterar isso.
Vah no Property Builder do DataGrid (Botao Direito > Property Builder).
Isso se aplica quando vc nao checkou para Criar colunas automaticamente.

Clicke na guia Format, na arvore do lado vc tem Columns e se expandir tem cada coluna do seu grid.. quando vc clicka em alguma.. a unica propriedade que vai aparecer do lado direito eh Width. ;)

Vc pode controlar tbm atraves da collection de Columns do DataGrid.. lah tem se eu nao me engano um ItemStyle.Width que vc pode setar para o valor que vc deseja.


Ops... agora que eu vi que eh windows forms
Bom .. la tem a seguinte maneira..

dataGrid1.TableStyles[0].GridColumnStyles[0].Width = xxx

Lembrando que vc pode passar o indice da tabela e coluna ou o nome da mesma como referencia.

Ateh



#654162 Como Inserir Uma Datagrid Inteiro Em Bd Sql?

Posted by felipecm on 24/10/2005, 22:15 in .NET

Olá felipe, obrigado pela tua ajuda:

eu tentei o seguinte codigo:

Dim conexao As String = ConfigurationSettings.AppSettings("conexaowhite")
Dim ds As New DataSet

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim sql As String = "Select * FROM Encomendas "
        Dim conn As New System.Data.SqlClient.SqlConnection(conexao)
        Dim da As New System.Data.SqlClient.SqlDataAdapter(sql, conn)
        conn.Open()
        da.Fill(ds, "dados")
        conn.Close()
        dg_encomendas.DataSource = ds.Tables("dados").DefaultView
        dg_encomendas.DataBind()
    End Sub
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim arrValues(2) As Object
        arrValues(0) = TextBox1.Text
        arrValues(1) = TextBox2.Text
        arrValues(2) = TextBox3.Text
        ds.Tables("dados").Rows.Add(arrValues)
        dg_encomendas.DataSource = ds.Tables("dados").DefaultView
        dg_encomendas.DataBind()
    End Sub

Mas só consigo adicionar uma linha à datagrid.
Se tento inserir mais, ele vai-me substituindo a linha que eu consegui inserir.
Queria que fosse possivel adicionar mais à medida que vou escrevendo nos campos, e carregando no botão :(

Obs: Eu usei uma tabela igual à orders. Mas isto na realidade vai ser usado numa tabela igual à order_details. Mas acho que por agora tanto faz.

O que estarei eu fazendo errado para sóme aparecer uma linha?

Entao.. o que ocorre eh o seguinte.. seu botao ate esta inserindo no DataTable e talz.. porem o evento Page_load ocorre toda vez que sua pagina eh carregada .. ateh mesmo quando um botao eh clickado.. e entao ele recupera tudo novamente do banco.. porisso que ele sempre vem com tudo do banco e com apenas o novo registro inserido..


Pra resolver isso, primeiramente o Dataset soh deve ser recuperado uma vez durante toda a execução da pagina. Isso preserva e deixa a pagina mais rapida. Feito isso vc tem q arrumar uma forma de manter o estado do DataSet para que quando dê um refresh (pelo click de um botao por exemplo) ele nao perca tudo. Eu costumo guardar DataSets em Sessions..porem temos N formas de fazer isso

Dim conexao As String = ConfigurationSettings.AppSettings("conexaowhite")
Dim ds as DataSet

    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      If Not IsPostBack Then
        Dim sql As String = "Select * FROM Encomendas "
        Dim conn As New System.Data.SqlClient.SqlConnection(conexao)
        Dim da As New System.Data.SqlClient.SqlDataAdapter(sql, conn)

        ds = New DataSet
        conn.Open()
        da.Fill(ds, "dados")
        conn.Close()
        Session("dsRetorno") = ds
      Else
        ds = CType(Session("dsRetorno"), DataSet)
      End If

      dg_encomendas.DataSource = ds.Tables("dados").DefaultView
      dg_encomendas.DataBind()
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim arrValues(2) As Object
        arrValues(0) = TextBox1.Text
        arrValues(1) = TextBox2.Text
        arrValues(2) = TextBox3.Text
        ds.Tables("dados").Rows.Add(arrValues)
        Session("dsRetorno") = ds
        'dg_encomendas.DataSource = ds.Tables("dados").DefaultView
        dg_encomendas.DataBind()
    End Sub




#653684 Como Inserir Uma Datagrid Inteiro Em Bd Sql?

Posted by felipecm on 23/10/2005, 09:54 in .NET

Boas,

a maioria de voces deve conhecer a base de dados sql northwind

Existe uma tabela "order details" e uma tabela "orders" e comunicam atraves do orderid.

Um orderid dentro da tabela "oders" pode corresponder a vários registos dentro da tabela "order details" porque pode haver uma encomenda com vários produtos.

O que eu queria fazer era um formulário de uma nova encomenda.

E tinha pensado no seguinte:

Fazer 3 texts boxes: que seriam "nome do produto" "quantidade" e "preço"

Fazer um botão de "adicionar à encomenda"

quando se escrevesse nos campos, carregava-se no botão esses valores apareciam na datagrid (ou outra tabela qualquer)

No final haveria outra botão "finalizar encomenda"
Onde se adicionaria todos os campos da datagrid à base de dados "orderdetails"
e com o mesmo oderderid adicionasse um registo à tabela "order"

Eu sei ler dados de uma base de dados para um datagrid, mas não sei o contrário.
Nem sei como fazer para quando escrever textos nos textbox esse valor parecer dentro do datagrid. Usando VB.net e ASP.NET

:(

Alguém me dá uma maõzinha??
Obrigado,
Max

(y) Primeira coisa.. carregar o datagrid com os dados do DataSet provenientes do teu banco.
A partir dai vc vai trabalhar de forma desconectada, ou seja .. todas suas informacoes vao ser alteradas sobre o Dataset para depois na finalização salve corretamente. O Datagrid busca sua fonte de dados para preenchimento em um DataSet.. logo vc deverá fazer o seguinte.

Com o botão adicionar à encomenda, o q vc tem q fazer é apenas inserir uma linha (DataRow) na DataTable que está no dataset que serve para OrderDetails.
Para isso...:
Dim arrValues(2) as Object
arrValues(0) = Campo0
arrValues(1) = Campo1
arrValues(2) = Campo1

Dataset.Tables(x).Rows.Add(arrValues)

Feito isso , o q vc tem q fazer é apenas dar um DataGrid.DataBind novamente para que ele recarregue o grid com as novas informações do DataSet.

Finalizando essa etapa, o que resta agora é salvar novamente no Banco.
Abra o banco e o DataAdapter novamente, da mesma forma que vc fez pra recuperar o DataSet com as informações, mas ao invez de dar o metodo Fill do DataAdatper utilize DataSet.Update() para atualizar os novos dados.. e DataSet.GetChanges() para que essas novas modificações não sejam pegas no proximo ciclo de Update().

Lembre-se que primeiro vc atualiza a tabela orders com um novo registro e depois vc reflete essas novas alterações em OrderDetails.



#651295 Erro Na Hora De Fazer O Thunbs

Posted by felipecm on 16/10/2005, 13:51 in .NET

oi,

felicm, eu estou com um problema identico.

não consigo gravar um ficheiro numa pasta porque me dá acesso denied.

Mas eu já fui ao ISS e pus a opção "WRITE" activa, e mesmo assim não consigo gravar!

Alguma sugestão???

Obrigado max

Vc pode tentar colocar o usuário ASPNET com permição de escrita no diretório...

Aqui resolveu :)

Abraços

t+

Exato...

Ou senao rodar o site sobre impersonate .. para uma conta que tenha permissão de escrita no diretório!

<identity impersonate="true" userName="dominio\user" password="senha" />


(y)



#651035 Menu Flash Em Asp.net

Posted by felipecm on 15/10/2005, 12:09 in .NET

Olarés!

É o seguinte, eu posso criar um linkbutton numa página asp.net, e se clicar 2 vezes em cima dele, posso dar-lhe uma função qualquer no codebehind como por exemplo:

...
Protected WithEvents LinkButton As System.Web.UI.WebControls.LinkButton
...

Private Sub LinkButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkButton.Click
        Label1.Text = "bljsahdfjshdflkjsadf"
    End Sub

Imaginem agora que eu quero introduzir um botão em flash que me faça isto!
Eu não posso clicar 2 vezes em cima desse botão e definir um evento para um postback

O que eu simulei foi esse botão flash, ter a seguinte acção definida dentro dele:

on(release){
	getURL("javascript:__doPostBack('LinkButton','')", "_self", "POST");
	}

E aí funcionou, porque o botão flash foi fazer uma "cópia" do que o linkbutton fazia.

Mas se eu apagar esse linkbutton(porque não faz falta para nada), mas deixar o codigo em vb igual ao que está já não consigo fazer com que o texto apareça no label como antes :(

PERGUNTA:

Haverá alguma forma de eu fazer uma função em VB tipo:
Private Function aparecer_texto
        Label1.Text = "bljsahdfjshdflkjsadf"
    End Function

e depois fazer com essa função seja chamada por um botão em flash que tem dentro dele o codigo:
on(release){
	getURL("javascript:__doPostBack('aparecer_texto','')", "_self", "POST");
	}

????

Gostava mesmo de solucionar isto!!

Ou se alguém souber de uma maneira de conseguir que um botão flash realize eventos em PostBack que me diga!

Obrigado,
Max

Da pra vc criar a sua propria funcao de PostBack ...

... ou ...

Deixar do jeito que está o seu com o linkbutton e simplesmente deixar o LinkButton com Visible = False. (y)



#650032 Asp.net Info No Status Qd Se Coloca Rato No Link

Posted by felipecm on 12/10/2005, 16:39 in .NET

Boas,

quando se fazia páginas em ASP, e se levava o rato sobre o link, aparecia sempre na barra do status(em baixo):

por exemplo
"http://blablablabla?id=000"

Mas agora, quando uso linkbuttons em asp.net aparece sempre funções em javascript tipo:

java script:__dopostback("linkbutton1","")

Qual dos metodos é o melhor?
Não acho piada mostrar essa função em java!

Dá para esconder isso?

Obrigado,
Max

Olha só, tem uma certa diferença na utilização de LinkButtons e Hyperlink

A diferenca base é que o linkbutton realiza um PostBack.
PostBack nada mais é do que um submit do Form para a propria pagina.
Com isso no retorno, vc tem como tratar um evento no Server do Click do linkbutton por exemplo.

Para realizar um postback, o ASP.net cria uma função client que submita pra propria pagina. Bem porcima a função __dopostback realiza algo do tipo:

<script>
  window.Form1.action = window.location.href;
  window.Form1.submit();
</script>

Agora se vc usar um controle Hyperlink, o texto que aparecerá na barra de status é do Link, pois a propriedade NavigationUrl é para onde ele vai redirecionar.
Mas vc pode mudar manualmente os LinkButtons da tua pagina fazendo algo do tipo:

Sub Page_Load
  LinkButton1.Attributes.Add("onMouseOver", "window.status = 'Texto do Link'")
  LinkButton1.Attributes.Add("onMouseOut", "window.status = ''")
End Sub



#650028 Query Sem Retorno Via Asp + Trás No Query Analizer

Posted by felipecm on 12/10/2005, 16:23 in .NET

Estou tentando executar uma query via asp.net usando ADO.Net, quando uso uma query simples, como "select campo from tabela" funciona perfeito e tenho o retorno do selectcommand, porém quando coloco na mesma query um where e dentro desse where tem um convert no campo de data, já não retorna nada.

Achei que era erro na query, mas testei ela direto no query analizer e lá funciona perfeitamente, com o convert e tudo, na verdade não sei o que pode ser o problema, não sei o ADO.Net não tem suporte a queries um pouco mais complexas, ou se tem alguma outra forma de executar estas queries, por isso deixo abaixo tb o código que uso para carregar um datagrid com o retorno dessa query.

-----------------------------------------------
SqlConnection oSqlConnection = new SqlConnection(Global.cstsStringConexao);
SqlCommand oSqlCommand = new SqlCommand();
SqlDataAdapter oSqlDataAdapter = new SqlDataAdapter();
DataSet oDataSet = null;

oSqlConnection.Open();

oSqlCommand = new SqlCommand(sSql, oSqlConnection);
oSqlCommand. CommandType = CommandType.Text;
oSqlCommand.CommandTimeout = 360;

oSqlDataAdapter.SelectCommand = oSqlCommand;
oDataSet = new DataSet("teste");
oSqlDataAdapter.Fill(oDataSet);


grdFunctions.DataSource = oDataSet;
grdFunctions.DataBind();
-----------------------------------------------

Se alguém tiver alguma dica eu agradeço! não sei exatamente onde pode estar o erro.

Olha só velinho...

Poe a sua query ai também pra gente poder analisar.
O ado.net através de SqlClient é a forma mais eficaz de conexão a dados SQL Server. Tem limitações, porém nao um simples Convert no Where iria ser problema pra isso.

Até (y)



#645529 Listbox

Posted by felipecm on 30/09/2005, 00:18 in .NET

Galera, tenho um Listbox preenchido.
O Meu problema é o seguinte:
Quero selecionar mais de um item e clicar em um botão para excluir.
Acontece que quando faço isso ele exclui só o primeiro registro do list, ele nem olha quais eu selecionei.
O quê estou fazendo de errado?
Segue o código abaixo:

private void limpaList(ListBox lst)
{
ArrayList arr = new ArrayList();
for(int i = 0;i<lst.Items.Count;i++)
{
if(lst.Items[i].Selected)
{
arr.Add(lst.Items[i].Value.ToString());
}
}
for(int i=0;i<arr.Count;i++)
{
lst.Items.Remove(lst.Items.FindByValue(arr[i].ToString()));
}
}

Obrigado,
Emmanuel

private void limpaList(ListBox lst) {

  for (int i=lst.Items.Count-1; i>=0; i--) {
    if (lst.Items[i].Selected)
      lst.Items.RemoveAt(i);    
  }
}

Se for WindowsForms, vc pode trocar a linha :

if (lst.Items[i].Selected)


por:

if (lst.SelectedIndices.IndexOf(i) > -1)




#645523 Textbox Numerico

Posted by felipecm on 29/09/2005, 23:51 in HTML, CSS e Metodologias

Pessoal, eu estou começando no C#.NET.

eu usei um textbox que deveria conter somente números, não achei nenhuma propriedade que forçaria isto.

Codifiquei no evento Key_up.

Meu problema é que sempre q o valor inserido não é número eu apago, e quando  o foco volta para a TextBox o cursor fica no começo e não no final, se o usuário não prestar atenção, quando ele errar o próximo numero entra na frente.

ex: 123f depois ele digita 456
fica: 456123.

tem como deixar o foco após o último dígito ???

Kara.. isso eh javascript..

Tenta algo do tipo no OnKeyPress
(caso seja um Textbox server vc precisará codificar o evento da seguinte forma:)
<%
Sub Page_Load
  Me.TxtBox.Attributes.Add("onKeyPress", "vNum()")
End Sub
%>

A sua função js pode bloquear o event.KeyCode caso seja diferente do range numérico:

<script>
  function vNum() {
    if (event.keyCode < 48 || event.keyCode > 57)
      event.keyCode = 0;
  }   
</script>

Mesmo assim essa função é sujeita a erros caso o infeliz venha a aplicar um Copy & Paste no Textbox rs .. mas tem solução .. eu mesmo tinha feito uma função que no evento onPaste() do textbox recuperava somente a porção numero do Buffer do cliente.



#642614 Converter Rtf Para Html

Posted by felipecm on 22/09/2005, 22:44 in ASP

como assim dá pau?!
tenta este que eh o do ftp (anonimo) para o source...
oac.hsc.uth.tmc.edu
em
/public/unix/WWW/rtf2html.tar

flws.. (y)

Tx.NET,

Desculpe cara, não sei o que estou fazendo de errado, mas não consigo baixar este arquivo de jeito nenhum... pode por gentileza me esclarecer com faço?

Valeu!

----------------------------------------------------------------------

Baixei o arquivo deste endereço:
www.tug.org/tex-archive/support/rtf2html/rtf2html.c

mas isto é na linguagem c, se alguém souber como posso usar isto na web, por favor me informe.

Valeu!


Evite posts consecutivos dentro do mesmo tópico, use o botao editar do topico em questao para inserir novas informações

Kara.. infelizmente vc nao pode fazer isso somente com ASP.

Talvez se vc criasse um componente em VB que lesse o RTF e gerasse o HTML valido.. e exportasse para o COM + .. (Server.CreateObject)... seria uma alternativa.



#640275 Duvidas .net

Posted by felipecm on 17/09/2005, 20:15 in .NET

Bom se construir um programa em C#, em todos os clientes que ele for instalado também será necessario a instalção do .net framework??? ou não (y)

Se vc fizer um sistema WindowsApplication em .net .. independente da linguagem que ele usar vai ser preciso a instalação do Framework na máquina. Aplicações Web.. somente no servidor.



#640002 É Matriz?

Posted by felipecm on 17/09/2005, 00:33 in ASP

OK, isto eu compreendi!

Mas teria algum benefício, além de eu não ter que fazer frases quilométricas na tela, podendo usar "_, para cair para linha de baixo?

A propósito, o robô ficou porreta!

Ele só teima em cadastrar mais de uma vez uma ou outra notícia, na mesma passagem, mesmo eu tendo colocado um filtro (se numero = numero do banco), e saber que o filtro está funcionando, já que quando ocorre o refresh, ele não cadastra a notícia novamente.

Psillus

Bom.. cara eu acho que deixa seu codigo um pouco mais limpo.. e eviita Splits (conversoes String -> Array) deixando um pouco mais rapido.. mas eh coisa que vc nem consegue notar.



#639364 É Matriz?

Posted by felipecm on 15/09/2005, 23:16 in ASP

Felipe,

Eu fiz o seguinte:
Retirei a declaração e o array "arrCats" de dentro do loop e coloquei na parte acima, onde colho de uma outra página, os números das notícias, e que são inseridos em uma URL, permitindo a leitura e a interpretação das notícias, uma a uma pelo loop.
Começou a funcionar.
Retirei uma ou outra declaração de variável e sua respectiva (nothing) e passou a funcionar 99%.
Estou com um pequeno problema pois algumas notícias estão sendo cadastradas, às vezes 2 ou 3 vezes. E o curioso é que se eu mando "printar" apenas os números em um loop, eles não se repetem.
Mas também sei que não é a função e o array, já que se eu simplesmente mando imprimir as notícias sem filtrá-las, o problema já aparece.
Bom, mas isto já é outro post.
Como eu não fiz a última alteração:

Nesse bloco eu tirei a parte de keywords delimitadas por ponto e virgula e defini uma array dentro da 2a coluna de cada linha em arrCats.. basicamente um array dentro de um array bidimensional.

E já está funcionando, queria saber se você poderia fazer o favor de me explicar, o porque desta última parte. Tanto para eu entender e aprender o que você pensou, como para verificar se é melhor deixar como está ou fazê-la.

Muito obrigado!

Psillus

Bom.. seguinte.. a gente tinha definido um array de duas colunas já certo?

Pois bem na primeira coluna vai o nome da categoria e na segunda as keywords (isto para cada linha) ....

O que eu fiz ali.. foi inserir um outro array dentro da coluna 2 ao invez de criar uma string e dar split.. com isso vc tem um novo array dentro de cada coluna 2 de cada linha.

Assim

|-----------------------------|
| Categoria |  Keywords  |
|-----------------------------|
| Politica    | blabla;blabla|
| Esportes  | futebol;blab |
|-----------------------------|

|-----------------------------|
| Categoria |  Keywords  |
|-----------------------------|   
| Politica    | Array        | -> blabla  | blabla
| Esportes  | Array        | -> futebol | blabl
|----------------------------|




#637413 É Matriz?

Posted by felipecm on 11/09/2005, 23:35 in ASP

<%

Dim strTitle
Dim arrTKeys
Dim arrKeys
Dim i

Function SearchArray(Item(), ItemToSearch())
  Dim i, j

  SearchArray = False

  For i = lBound(Item) To UBound(Item)
    For j = LBound(ItemToSearch) To UBound(ItemToSearch)
      If Trim(LCase(Item(i))) = Trim(LCase(ItemToSearch(j))) Then
        SearchArray = True
        Exit Function
      End If
    Next
  Next
End Function

%>

<%


'Replaces que juntam palavras compostas, preparando-as para a filtragem
titulo = "Morre nos Estados Unidos o professor e deputado José Dirceu."
strTitle = titulo
strTitle = Replace(strTitle, "Estados Unidos", "EstadosUnidos")
strTitle = Replace(strTitle, "Meio Ambiente", "MeioAmbiente")
strTitle = Replace(strTitle, "Marina Silva", "MarinaSilva")

%>


<%

'-------------------------------------------
'Area de Declaração de Categories / Keywords
'-------------------------------------------
Dim arrCats(12, 1)

arrCats(0, 0) = "Economia"
arrCats(0, 1) = Array("Economia","Inflação","PIB","leilão", _
                  "leiloa","indústria","industrial","emprego", _
                  "empregos","preço","economista","fábrica", _
                "fabricante","fabricantes","industriais")


arrCats(1, 0) = "Informática"
arrCats(1, 1) = Array("microcomputador","computador","software")

arrCats(2, 0) = "Governo"
arrCats(2, 1) = Array("Lula","Governo")

arrCats(3, 0) = "Educação"
arrCats(3, 1) = Array("educação","ENEM","universidade","graduação", _
  "estudantes","estudante","professor", _
  "professores","ensino")

arrCats(4, 0) = "Agropecuária"
arrCats(4, 1) = Array("grão","grãos","safra","estiagem",_
  "pescador","pescadores")

arrCats(5, 0) = "Meio Ambiente"
arrCats(5, 1) = Array("MarinaSilva","Ambiente","Ibama", _
                      "florestal","florestais","florestas")

arrCats(6, 0) = "Saúde"
arrCats(6, 1) = Array("saúde","remédios","anti-retroviais", _
  "anti-retroviral","hospitais","remédio", _
  "farmácia","farmácias")

arrCats(7, 0) = "Sociedade"
arrCats(7, 1) = Array("greve","temporal","chuva","inundação", _
  "preso","ONGs","PM","pobreza","segurança")

arrCats(8, 0) = "Política"
arrCats(8, 1) = Array("deputado","deputados","senador", _
                    "senadores","lei","provisória","Senado", _
  "Câmara","vota")

arrCats(9, 0) = "Esportes"
arrCats(9, 1) = Array("futebol","jogador","jogadores", _
  "basquete","atleta","atletas","atletismo")

arrCats(10, 0) = "Ciência e Tecnologia"
arrCats(10, 1) = Array("ciência","tecnologia")

arrCats(11, 0) = "Internacional"
arrCats(11, 1) = Array("Guatemala","Peru","Bolívia","Argentina", _
    "Uruguai","Mexico","EstadosUnidos","Equador")

arrCats(12, 0) = "Cultura e Lazer"
arrCats(12, 1) = Array("Exposição")

%>

<%

arrTKeys = Split(strTitle, " ")

For i = LBound(arrCats, 1) To UBound(arrCats, 1)
  If SearchArray(arrCats(i, 1), arrTKeys) Then
    categoria = arrCats(i, 0)
    Exit For
  End If
Next


If categoria = "" Then categoria = "Sociedade"

%>


Nesse bloco eu tirei a parte de keywords delimitadas por ponto e virgula e defini uma array dentro da 2a coluna de cada linha em arrCats.. basicamente um array dentro de um array bidimensional.

O LCase / Trim.. nao precisa ser aplicado sobre cada keyword ou sobre o titulo.. mas pode ser feito na função que faz a busca do array.

Bom.. qualquer coisa só chamar. (y)



#637406 Numeros De Registro

Posted by felipecm on 11/09/2005, 23:00 in ASP

Oi.

Gostaria de desenvolver uma pagina onde cria um numero de registro, ex:

EPC12A - A1245 - 2130 - 1540E

so q to com dificuldades para fazer o sistema intender se é valido ou nao o registro.
Nao queria usar banco de dados para gravar todos os registros, gostaria q o sistema criase um, envia-se para o usuario e depois o usuario pudesse colocasse o nº do registro, e o sistema so verificasse se é valido ou nao e dexasse passar.

Queria usar numeros e letras.
To quebrando a cabeça pra tentar descobrir como posso fazer isso. ja descobri com numero mas e as letras.

com os numeros eu faço assim:

dim a, b, c, d, e
a = 0
b = 0
c = 0
d = 0
e = 0

if a >= 4 then
 if a < = 6 then
    if a <> 5 then
       escreve no numero 4 ou 6
    end if
  end if
end if
  
if b >=5 then
  if b <=8 then
    if b <> 6 or b <> 7 then
     escreve o numero 5 ou 8
    end if
  end if
end if
...
e assim por diante.

Olha só.. pra desenvolver seu algoritmo de criptografia .. vc precisa trabalhar com as letras em formato numerico. Felizmente isso é possivel graças a função Chr(num).. que retorna um char a partir do seu correspondente ASCII.

Chr(65) = "a"
...
Chr(90) = "z"


Através disso .. vc pode seguir a mesma logica dos números.



#637021 É Matriz?

Posted by felipecm on 10/09/2005, 19:27 in ASP

Maracuja,

Estou tentando comparar, uma variável que obtenho em um split de um Título de uma noticia, com outros splits que irão determinar a categoria.

Tipo assim:

Titulo = "A economia Brasileira cresceu 2,4% neste ano"

l = split("Economia;Inflação;PIB;leilão;leiloa;indústria;industrial;emprego;empregos", ";")
l1 = split("microcomputador;computador;software", ";")
l2 = split("Lula;Governo", ";")
l3 = split("educação;ENEM;universidade;graduação;estudantes;estudante;professor;professores;ensino médio;ensino fundamental", ";")
l4 = split("grão;grãos;safra;estiagem", ";")
l5 = split("Marina Silva;Ambiente;Ibama;florestal;florestais;florestas", ";")
l6 = split("saúde;remédios;anti-retroviais;anti-retroviral;hospitais;remédio;farmácia;farmácias", ";")
l7 = split("greve;temporal;chuva;inundação;preso", ";")
l8 = split("deputado;deputados;senador;senadores;lei;provisória", ";")

Se uma palavra que do split de Titulo for igual a uma palavra de um dos splits acima ele determina a categoria.

<%
IF split(Titulo, " ") = split (l, ";") then
categoria= "Economia"
end if
%>

Eu tentei usar o select case, mas quando eu digo que "l" vai variar no select case, ele irá variar automaticamente também o nome da categoria.
No exemplo acima, imagine se eu disser que l será igual a qualquer dos " l's " acima, para cada um destes " l's " haverá uma determinada categoria, tais como: Saúde, Educação, Governo, etc.

Não sei se piorou ou melhorou, qualquer coisa tento melhorar a explicação.

Obrigado.

Psillus

Cara.. bom vamos lá.. eu sugeria vc a guardar as informacoes em duas tabelas dinstintas ..(Categorias e Keywords) unindo FK_Cod_Cat em Keywords.

Talvez vc pode utilizar uma solucao diferente.. através de matrizes bidimensionais.
O problema de matrizes bidimensionais é que, de fato, vc não vai poder trabalhar com indices dinamicos para qtd de categorias.. (Redim Preserve só consegue alterar o ultimo indice da matriz), por isso isso vai ser ter q ser definido explicitamente na declaracao da matriz. Aí vai uma solução:

Function SearchArray(Item(), ItemToSearch())
  Dim i, j

  SearchArray = False

  For i = lBound(Item) To UBound(Item)
    For j = LBound(ItemToSearch) To UBound(ItemToSearch)
      If Item(i) = ItemToSearch(j) Then
        SearchArray = True
        Exit Function
      End If
    Next
  Next
End Function

Dim arrCats(1, 1)

strTitle = "the quickest brown fox jumps the lazy dog"
arrTKeys = Split(strTitle, " ")


arrCats(0, 0) = "Categoria 1"
arrCats(0, 1) = "quickest;teste;dog"
arrCats(1, 0) = "Categoria 2"
arrCats(1, 1) = "fox;lazy;dog"

For i = LBound(arrCats, 1) To UBound(arrCats, 1)
  arrKeys = Split(arrCats(i, 1), ";")

  If SearchArray(arrKeys, arrTKeys) Then
 	 Response.Write "Categoria: " & arrCats(i, 0)
 	 Exit For
  End If
Next



#637013 Erro No Update

Posted by felipecm on 10/09/2005, 19:05 in .NET

Tentei colocar o erro em "off" mas não mudou nada..

certo quanto a procedure eu criei.. agora como faço apra chamar ela no asp.net e passar as variaveis??

'Conecta com o banco SQL
Dim cn As New SqlConnection(ConfigurationSettings.AppSettings("ConnectionString"))
'Abre o Banco
cn.Open()
'Edita Administrador

Dim Cmd As New SqlCommand()
Cmd.Connection = cn
Cmd.CommandText = "PROCEDURE_NAME"
Cmd.CommandType = CommandType.StoreProcedure

Cmd.Parameters.Add(New SqlParameter("@NomeCompleto", txtNome.Text))
Cmd.Parameters.Add(New SqlParameter("@Cpf", txtCpf.Text))
Cmd.Parameters.Add(New SqlParameter("@TelResidencial", txtResidencial.Text))
Cmd.Parameters.Add(New SqlParameter("@TelComercial", txtComercial.Text))
Cmd.Parameters.Add(New SqlParameter("@Celular", txtCelular.Text))
Cmd.Parameters.Add(New SqlParameter("@Email", txtEmail.Text))
Cmd.Parameters.Add(New SqlParameter("@Senha", txtSenha.Text))
Cmd.Parameters.Add(New SqlParameter("@id", Request.QueryString("id")))
Cmd.ExecuteNonQuery()
cn.Close()




#637010 Radiobutton

Posted by felipecm on 10/09/2005, 19:00 in .NET

Olá.

Gostaria de saber como eu faço para que o <asp:RadioButton> passe um valor pra uma outra página, e como devo fazer isso.

OBS: estou usando VB.net e asp.net

valeu.

Tem mtas formas.. vc pode passar via QueryString.. :

  Response.Redirect("Page2.Aspx?optTeste=" & optTeste.Checked.ToString)


  Dim strValue As String

  strValue = Request.QueryString("optTeste")
  Response.Write(strValue)




#634899 Como Criar Um Rss?

Posted by felipecm on 05/09/2005, 22:07 in ASP

Olá pessoal,

No meu site tem um sistema de notícias em ASP e eu gostaria de saber se tem como criar um RSS ligado à esse sistema, de modo que o usuário possa instalar esse RSS em barras de navegação do IE (a barra UOL, por exemplo posibilita que a pessoa cadastre RSS de sites que deseje ver as notícias...).

Se alguém souber como fazer isso, agradeço desde já! (y)

Pesquise um pouco em TSQL na clausula FOR XML [AUTO | ELEMENTS | RAW].

As vezes vc pode recuperar um rowset SQL já com o XML montado na estrutura adequada, o que iria acelerar o processamento.



#634898 Sessions

Posted by felipecm on 05/09/2005, 22:04 in ASP

A session é usada para guardar informações que serao usada por varias pagina/banco de dados do site.

Request.QueryString() é uma maneira de enviar essa informção de pagina em pagina

Bom.. as duas servem pra manter estado entre paginas.. o q eh um problema em paginas web.

Querystrings são uteis, quando seu navegador nao suporta recursos e/ou as informações não precisam ser passadas com segurança.

A vantagem de usar sessions em ASP 3 .. é sua segurança q é considerada razoável e sua capacidade de expirar através de timeout. (Cookies também podem ser expirados porem existem navegadores que nao suportam o uso de)

Tudo vai depender do caso especifico. Sessions/Applications são variaveis que de fato consomem memória do servidor onde estão hospedados.

Para casos de includes especificos QueryString seria a solução mais correta e eficaz.

  Server.Execute(Request.ServerVariables("QUERY_STRING") & ".asp")




#634380 Ajuda Com Include

Posted by felipecm on 04/09/2005, 19:34 in ASP

Se "principal" for um diretorio virtual .. o do Generation serve.
Com include file desça 2 niveis e aponte o arquivo.

<!--#include file="../../topo.asp"-->




IPB Skin By Virteq