Projeto de Análises Laboratoriais

09/12/2009

Amigos,


Vejam minha necessidade.


Preciso criar um projeto de análises laboratoriais .


Criei uma tabela de Processos.  que   seria um grupo de análises

Criei uma tabela de Análises  que determina a data e o local da coleta.

Criei uma tabela de Detalhe de parâmetros para acrescentar nas análise.


Criei uma tabela de Método que funciona como um padrão de parâmetros que devem ser analisados nas análises.



a Idéia é.   Cadastro um Processo.  após isto Vou a  tela de Análises e Cadastro uma nova análise..... outra tela.


e crio esta página com uma combobox que busca os métodos.


Selecionado um Método ( que ja especiifica alguns parâmetros) ele Cria um DataTable com os parâmetros a serem analisados e prenche uma gridview.

esta gridview tem uma coluna Valor no qual acrescentei um TextBox  para acrescentar os valores.


Bom espero ter sido claro até aqui.

1.)  Quero Acrescentar no banco de dados os valores que estão nas colunas de valores.  ou seja preciso mudar a grid, para depois mudar o DataTable,   realizar a leitura e inserir no Banco,   COMO FAZER ISTO?



vejam o Modelo HTML:

<table class="style1">
        <tr>
            <td class="style9">
                <img alt="Logo" src="../image/logo.gif" style="width: 89px; height: 91px" />
            </td>
            <td class="style6">
                <span class="style10">Aqua Report</span><br />
                <asp:Label ID="lblData" runat="server" Font-Names="Verdana" Font-Size="8pt"></asp:Label>
                <asp:SqlDataSource ID="dsMetodo" runat="server" ConnectionString="<%$ ConnectionStrings:csAquaplan %>"
                    SelectCommand="SELECT [CODIGO_METANAL], [NOME_METANAL] FROM [TBL_METODO] ORDER BY [NOME_METANAL]">
                </asp:SqlDataSource>
            </td>
        </tr>
        <tr>
            <td class="style7" colspan="2">
                <asp:Label ID="lblDados" runat="server"></asp:Label>
            </td>
        </tr>
        <tr>
            <td class="style9">
                <asp:Label ID="lblLocal" runat="server">Local :</asp:Label>
            </td>
            <td>
                <asp:TextBox ID="txtLocal" runat="server"></asp:TextBox>
            </td>
        </tr>
        <tr>
            <td class="style9">
                Tipo de Amostra :
            </td>
            <td>
                <asp:DropDownList ID="ddlTipoAmostra" runat="server" DataSourceID="dsMetodo" DataTextField="NOME_METANAL"
                    DataValueField="CODIGO_METANAL" AutoPostBack="True" OnSelectedIndexChanged="ddlTipoAmostra_SelectedIndexChanged">
                </asp:DropDownList>
            </td>
        </tr>
        <tr>
            <td class="style8" colspan="2">
                <asp:ScriptManager ID="ScriptManager1" runat="server">
                </asp:ScriptManager>
                <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                    <ContentTemplate>
                        <asp:GridView ID="gvAnalise" runat="server" AutoGenerateColumns="False" CellPadding="4"
                            Font-Names="Verdana" Font-Size="8pt" ForeColor="#333333" Width="100%">
                            <FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                            <RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
                            <Columns>
                                <asp:BoundField DataField="Codigo" HeaderText="Código">
                                    <HeaderStyle HorizontalAlign="Left" />
                                    <ItemStyle Width="50px" />
                                </asp:BoundField>
                                <asp:BoundField DataField="Parametro" HeaderText="Parâmetro">
                                    <HeaderStyle HorizontalAlign="Left" />
                                </asp:BoundField>
                                <asp:TemplateField HeaderText="Valor">
                                    <ItemTemplate>
                                        <asp:TextBox ID="txtValor" runat="server"></asp:TextBox>
                                    </ItemTemplate>
                                    <HeaderStyle HorizontalAlign="Center" />
                                    <ItemStyle Width="100px" />
                                </asp:TemplateField>
                                <asp:BoundField DataField="Unidade" HeaderText="Unidade">
                                    <HeaderStyle HorizontalAlign="Left" />
                                    <ItemStyle Width="100px" />
                                </asp:BoundField>
                                <asp:BoundField DataField="Limite" HeaderText="Limite">
                                    <HeaderStyle HorizontalAlign="Left" />
                                    <ItemStyle Width="100px" />
                                </asp:BoundField>
                                <asp:CommandField DeleteImageUrl="~/image/locationbar_erase.png" DeleteText="Excluir"
                                    HeaderText="Excluir" ShowDeleteButton="True">
                                    <ItemStyle Width="50px" />
                                </asp:CommandField>
                            </Columns>
                            <PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
                            <SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" />
                            <HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
                            <EditRowStyle BackColor="#999999" />
                            <AlternatingRowStyle BackColor="White" ForeColor="#284775" />
                        </asp:GridView>
                    </ContentTemplate>
                </asp:UpdatePanel>
            </td>
        </tr>
    </table>






Vejam o Código:

DataTable mDataTable = new DataTable();

        //Define uma DataColumn
        DataColumn mDataColumn;

        //Cria a Primeira DataColumn
        mDataColumn = new DataColumn();
        mDataColumn.DataType = Type.GetType("System.String");
        mDataColumn.ColumnName = "Codigo";
        mDataTable.Columns.Add(mDataColumn);

        //Cria a Primeira DataColumn
        mDataColumn = new DataColumn();
        mDataColumn.DataType = Type.GetType("System.String");
        mDataColumn.ColumnName = "Parametro";
        mDataTable.Columns.Add(mDataColumn);


        //Cria a Primeira DataColumn
        mDataColumn = new DataColumn();
        mDataColumn.DataType = Type.GetType("System.String");
        mDataColumn.ColumnName = "Valor";
        mDataTable.Columns.Add(mDataColumn);


        //Cria a Primeira DataColumn
        mDataColumn = new DataColumn();
        mDataColumn.DataType = Type.GetType("System.String");
        mDataColumn.ColumnName = "Unidade";
        mDataTable.Columns.Add(mDataColumn);


        //Cria a Primeira DataColumn
        mDataColumn = new DataColumn();
        mDataColumn.DataType = Type.GetType("System.String");
        mDataColumn.ColumnName = "Limite";
        mDataTable.Columns.Add(mDataColumn);

        int intCodigo = CodigoAnalise;
        string strsql = "";

        strsql = "SELECT  TBL_PARAMETRO.CODIGO_PARAM, TBL_PARAMETRO.NOME_PARAM, ";
        strsql = strsql + " TBL_DETALHEMETODO.LIMMIN, TBL_DETALHEMETODO.LIMMAX ";
        strsql = strsql + " FROM TBL_DETALHEMETODO INNER JOIN ";
        strsql = strsql + " TBL_PARAMETRO ON TBL_DETALHEMETODO.CODIGO_PARAM = TBL_PARAMETRO.CODIGO_PARAM ";
        strsql = strsql + " WHERE     (TBL_DETALHEMETODO.CODIGO_METANAL = " + intCodigo +") ";

        SqlConnection conn = new SqlConnection(@"Data Source=.\sqlexpress;Initial Catalog=AQUAPLAN;Integrated Security=True");

        conn.Open();
       
        SqlCommand cmd = new SqlCommand(strsql, conn);
        SqlDataReader dr = cmd.ExecuteReader();

        DataRow linha;

        while (dr.Read())
        {
            linha = mDataTable.NewRow();
            linha["Codigo"] = dr[0].ToString();
            linha["Parametro"] = dr[1].ToString();
            linha["Valor"] = "";
            linha["Unidade"] = "ppm";
            linha["Limite"] = dr[2].ToString() + " - " + dr[3].ToString();
            mDataTable.Rows.Add(linha);
          
        }
        return mDataTable;

        conn.Close();
        conn.Dispose();




Fernando Reis

Fernando Reis

Curtidas 0

Respostas

Fabio Mans

Fabio Mans

09/12/2009

Fernando sinceramente não entendi. Você precisa varrer as linhas do Grid e obter o valor da coluna Valores? Não entendi porque monta um DataTable.   Fabio   ================================================== Bom espero ter sido claro até aqui.

1.)  Quero Acrescentar no banco de dados os valores que estão nas colunas de valores.  ou seja preciso mudar a grid, para depois mudar o DataTable,   realizar a leitura e inserir no Banco,   COMO FAZER ISTO?
   
GOSTEI 0
Fernando Reis

Fernando Reis

09/12/2009


Olá Fabio!!


Segue abaixo!!



Fernando sinceramente não entendi.(sorry....kkk)Você precisa varrer as linhas do Grid e obter o valor da coluna Valores? Correto, isto mesmo, Como pegar o valor de cada textbox dentro da grid ja que estas estão em TEXTBOX???
 
Não entendi porque monta um DataTable. Porque depende muito do tipo de métodos, dependendo de cada método cadastrado e com possiblidade de mudançads na hora do cadastro ( este é complicado mesmo, mas até aqui entendi que o melhor seria uma datatable para depois inserir todas as lçinha no banco)
GOSTEI 0
Fabio Mans

Fabio Mans

09/12/2009

Fernanda veja um exemplo     CODIGO PROFISSIONAL NOME MEIO SOBRENOME 1 PEDRO JOSE FERREIRA JOSE 2 MARIA DAS DORES SOARES DAS DORES 3 RITA CASSIA SILVA CASSIA 4 LUCIO FERNANDO CARLOS FERNANDO   Perceba que tenho um textbox na coluna 0 (sobrenome)   <asp:GridView ID="GridView1" runat="server"><Columns><asp:TemplateField><ItemTemplate>
<asp:TextBox ID="TextBox1" runat="server" Text='<%# Eval("Sobrenome") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>   Coloquei um botão para varrer o Grid e localizar o textbox dentro do Grid, o segredo é o método FindControl.   protected void Button1_Click(object sender, EventArgs e) { TextBox txt; foreach (GridViewRow row in GridView1.Rows) { txt = (TextBox) row.Cells[0].FindControl("TextBox1"); Response.Write(txt.Text + "<br>"); } }   Perceba que crio o txt do tipo Textbox e para cada linha do Grid eu utilizo o FindControl para localizar o Textbox e defino o valor no txt, em seguida eu imprimo na tela.     Espero ter ajudado com este exemplo
GOSTEI 0
Fernando Reis

Fernando Reis

09/12/2009

entendi,


é isto que preciso,
é o mesmo método usado para Carrinho de compras???
GOSTEI 0
Fabio Mans

Fabio Mans

09/12/2009

Fernando desculpa pela Fernanda, nem vi.   Isso mesmo é bem parecido com o carrinho de compras   protected void UpdateTotals()
    {
         // update the quantities
        foreach (GridViewRow row in CartGrid.Rows)
        {
           int Quantity = Convert.ToInt32((row.FindControl("txtQuantity") as TextBox).Text);
            if (Quantity == 0)
            {
                Profile.Cart.Items.RemoveAt(row.RowIndex);
            }
            else
            {
                Profile.Cart.Items[row.RowIndex].Quantity = Quantity;
            }
            CartGrid.EditIndex = -1;
            BindGrid();
        }
    }   Abraços   Fabio
GOSTEI 0
Fernando Reis

Fernando Reis

09/12/2009

Resolvido,

Obrigado
GOSTEI 0
POSTAR