Fórum Projeto de Análises Laboratoriais #12786
09/12/2009
0
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
Curtir tópico
+ 0Posts
09/12/2009
Fabio Mans
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
09/12/2009
Fernando Reis
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
10/12/2009
Fabio Mans
<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
10/12/2009
Fernando Reis
é isto que preciso,
é o mesmo método usado para Carrinho de compras???
Gostei + 0
10/12/2009
Fabio Mans
{
// 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
13/12/2009
Fernando Reis
Obrigado
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)