Array
(
)

Dúvidas

Fagnerx21
   - 27 nov 2007

Olá a todos do fórum, eu comecei a estudar ASP.NET e estou com uns problemas, o livro que estou estudando, o autor utiliza ASP.NET e VB.NET, mas estou passando pra C# pois é esta linguagem que irei utilizar, então estou com alguns problemas de sintaxe que não sei como passar pro C e também vou precisar de alguma ajuda com sentenças SQL,então vou postar aqui minhas dúvidas e se alguém puder me ajudar ficarei grato.

Em algumas partes do código ele utiliza o comando If Not IsPostBack,mas no C ele não reconhece o Not,como poderia fazer isso no C? if ! ispostback?

Citação:

For Each objDR In objDT.Rows
If objDR(´Produto´) = Produto Then
objDR(´Quantidade´) += txtQuantidade.Text
blnMatch = True
Exit For
End If
Next
If Not blnMatch Then
objDR = objDT.NewRow
objDR(´Quantidade´) = txtQuantidade.Text
objDR(´Produto´) = Produtos.SelectedItem.Text
objDR(´Custo´) = Decimal.Parse(Produtos.SelectedItem.Value)
objDT.Rows.Add(objDR)
End If


Eu até sei passar pra C#,só não reconheci o next,como esse código ficaria em C?

Citação:

For intCounter = 0 To objDT.Rows.Count – 1


Só pra ter certeza,no C esse código ficaria:

Citação:

For ( intCounter = 0; objDT.Rows.Count – 1; ) ???


Citação:

Sub Exclui_Item(s As Object, e As DataGridCommandEventArgs)
objDT = Session(´Carrinho´)
objDT.Rows(e.Item.ItemIndex).Delete()
Session(´Carrinho´) = objDT
dg.DataSource = objDT
dg.DataBind()
lblTotal.Text = FormatCurrency(GetItemTotal(),2)
End Sub


No C eu estou utilizando o gridview, então ficaria:

Citação:

Public void Exclui_Item( Object s, GridViewCommandEventArgs e)?


Mas nessa linha:

Citação:

objDT.Rows(e.Item.ItemIndex).Delete()


Ele não reconhece o Item.ItemIndex).Delete()
Como eu mudo isso?

E também nessa linha:

Citação:
lblTotal.Text = FormatCurrency(GetItemTotal(),2)


Ele não reconhece o FormatCurrency
Como resolvo isso?

Citação:
Function CriaCarrinhoDeCompras()

No C# ficaria:

Citação:
public void CriaCarrinhoDeCompras() ?


Citação:

Dim Cmd as New OleDbCommand(MySQL, MyConn)

No C ficaria:

Citação:
OleDbCommand cmd = new OleDbCommand(MySQL, MyConn); ?


Citação:
For Each objDR In objDT.Rows


No C ficaria:

Citação:
foreach (objDR In objDT.Rows)

Mas ele não aceita o in
Como resolvo isso?

Agora os problemas com SQL:

O projeto que estou fazendo é um sistema gerenciador de vendas, ou seja, o usuário poderá cadastrar clientes, produtos e funcionários, efetuar vendas e também editar o estoque, clientes e funcionários.
Então, tenho algumas dúvidas, que até tentei solucionar pensando algumas idéias, mas vi que não dá certo.
Na parte em que o funcionário efetua uma venda, eu estou utilizando o esquema de carrinho de compras utilizando DataTable, carrego um objeto DropDownList com os registros da minha tabela produtos e o produto que for selecionado é mostrada a marca num Label e o preço em outro Label, a quantidade é digitada no campo qtde, então o produto e a qtde é adicionada no carrinho quando o botão incluir é clicado, mas antes do produto ser adicionado eu queria verificar a quantidade digitada referente ao produto, por exemplo, o usuário selecionou TV e no estoque(tabela produtos)o campo qtde do produto TV possui apenas 10, mas no campo qtde o usuário digitou 11, mas como eu tenho apenas 10 TVs no meu estoque não poderia vender 11, então queria que o sistema fizesse essa verificação, e caso o valor digitado no campo fosse maior que a qtde em estoque do produto selecionado, o sistema iria emitir um mensagem ao usuário, não foi possível efetuar a operação, qtde insuficiente em estoque, caso o usuário digitasse 10 no campo qtde, o produto seria adicionado com sucesso ao carrinho e qdo clicar no botão efetuar venda seria subtraído 10 TVs, assim o campo qtde do produto TV teria valor = 0 e depois de efetuado a venda o sistema iria levar o usuário a uma tela onde ele poderia imprimir um relatório informando os produtos comprados, marca, preço e qtde, como eu faria isso?
Na parte onde eu edito o meu estoque, teria um GridView exibindo os dados da minha tabela produtos, então ao invés dos linkbuttons edit/update – delete para editar o campo qtde, eu queria que tivesse um botão “+”, um textbox, e um botão “-“, que funciona da seguinte maneira, seria uma edição mais dinâmica, na linha em que possui o produto TV, o usuário poderia aumentar ou diminuir a qtde, por exemplo tem 10 TVs, então o usuário digita 20 no textbox e clica no botão +, então iria somar 20 à qtde do produto TV ficando 30 TVs, então depois ele digita 10 e clica no botão -, então iria subtrair 10 à qtde do produto TV ficando 20 TVs, depois o usuário tenta fazer uma brincadeira, digita 100 e clica no botão -, mas como o estoque só possui 20 produtos TV seria impossível retirar 100 TVs do estoque, então o sistema emite uma mensagem ao usuário, não foi possível efetuar a operação, qtde insuficiente em estoque, como eu faria isso?
Nas edições de clientes, produtos e funcionários, eu queria que além de poder visualizar os dados do gridview e poder editar, também poder imprimir os dados do gridview, como faço isso?

Em algumas partes do registro de clientes, produtos e funcionários possuem campos que necessitam ter um modelo, (CEP: 99999-999), (CPF: 999.999.999-99), (Data de Nascimento e Data de Recebimento: 01/01/1999), (RG: 9.999.999 9), (Nº Carteira de Trabalho: ???,esqueci o modelo), (Telefone e Celular: 9999 – 9999).
Então eu tentei utilizar o objeto expressionvalidator, mas quando clico no ... pra ver os modelos de validação, só tem modelos internacionais e eu queria utilizar os modelos aqui do Brasil,então fui em custom,mas não sei como funciona esses códigos de modelo [W+]/[W-],etc.
Será que alguém poderia postar o código de cada um dos modelos citados acima?

Bom, por enquanto é só isso, quando tiver mais dúvidas voltarei aqui para dar uma incomodadinha em vcs, preciso muito que vcs me ajudem, por favor.
Obrigado.

Rafdragon
   - 27 nov 2007

fagnerx21,

Então, em relação as suas dúvidas, sugiro que você compre algum livro específico de C#, isso vai te facilitar muito.

Vou tentar esclarecer algumas de suas dúvidas:

Em 1º lugar:
- é importante ressaltar que C diferencia letras maiúsculas de letras minúsculas, então, Main não é o mesmo que main.
- Note que é obrigatório o uso de ponto-e-virgula no final de cada instrução.

Pergunta:

Citação:
em algumas partes do código ele utiliza o comando If Not IsPostBack,mas no C ele não reconhece o Not,como poderia fazer isso no C? if ! ispostback?


Resposta:

#Código

O Not do VB é o "!" no C,

        if (!Page.IsPostBack)
        {
         }


Pergunta:

Citação:
For Each objDR In objDT.Rows
If objDR(´Produto´) = Produto Then
objDR(´Quantidade´) += txtQuantidade.Text
blnMatch = True
Exit For
End If
Next
If Not blnMatch Then
objDR = objDT.NewRow
objDR(´Quantidade´) = txtQuantidade.Text
objDR(´Produto´) = Produtos.SelectedItem.Text
objDR(´Custo´) = Decimal.Parse(Produtos.SelectedItem.Value)
objDT.Rows.Add(objDR)
End If


Resposta:

#Código
         foreach(DataRow objDR in objDT.Rows)
         {
        if (objDR["Produto"] == Produto){
        objDR["Quantidade"] += txtQuantidade.Text.ToString(); 
        blnMatch = true;
        }
                 
         }

        if (!blnMatch){
            objDR = objDT.NewRow();    
            objDR["Quantidade"] = txtQuantidade.Text.ToString(); 
            objDR["Produto"] = Produtos.SelectedItem.ToString();
            objDR["Custo"] = Convert.ToDecimal(Produtos.SelectedItem.ToString());
            objDT.Rows.Add(objDR);
           }


Pergunta:

Citação:
Eu até sei passar pra C,só não reconheci o next,como esse código ficaria em C?

Citação:

For intCounter = 0 To objDT.Rows.Count – 1

Só pra ter certeza,no C esse código ficaria:
Citação:

For ( intCounter = 0; objDT.Rows.Count – 1; ) ???


Resposta:

#Código
Nesse caso ficaria:

  foreach (DataRow objDR in objDT.Rows)
    {
   }

A sintaxe do for: 

for (inicializador;condição;repetidor)
{
  Instrução;
}

foreach (TipoDeDados NomeDaVariavel in NomeArray|NomeColeção)
{
 Instruções;
}


Em relação ao DataGrid olhe o tópico:

http://forum.devmedia.com.br/viewtopic.php?t=91538

Fagnerx21
   - 29 nov 2007

Quanto a conversão tá tranquilo pq em outro forum me referenciaram um ótimo site de conversão,quanto a esse básico de c# eu já to ligado,mas e as questões de sql e códigos de validação,vc sabe me responder?ou se alguém puder me ajudar.

Obrigado.

Fagnerx21
   - 29 nov 2007

E tb já li vários livros a respeito d c# e asp.net e não vi nada parecido,mas mesmo assim,obrigado.