Anime
Março 24, 2011, 6:34pm
#1
Oi,
Alguém pode me ajudar, estou perdida aqui… :roll:
ERROR [22018] [Microsoft][ODBC SQL Server Driver][SQL Server]Falha ao converter o nvarchar valor ‘52,98’ para o tipo de dados int.
Rastreamento de Pilha:
[OdbcException (0x80131937): ERROR [22018] [Microsoft][ODBC SQL Server Driver][SQL Server]Falha ao converter o nvarchar valor ‘52,98’ para o tipo de dados int.]
System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode) +1155538
System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader, Object[] methodArguments, SQL_API odbcApiMethod) +1147
System.Data.Odbc.OdbcCommand.ExecuteReaderObject(CommandBehavior behavior, String method, Boolean needReader) +61
System.Data.Odbc.OdbcCommand.ExecuteNonQuery() +92
System.Web.UI.WebControls.SqlDataSourceView.ExecuteDbCommand(DbCommand command, DataSourceOperation operation) +386
System.Web.UI.WebControls.SqlDataSourceView.ExecuteUpdate(IDictionary keys, IDictionary values, IDictionary oldValues) +325
System.Web.UI.DataSourceView.Update(IDictionary keys, IDictionary values, IDictionary oldValues, DataSourceViewOperationCallback callback) +92
System.Web.UI.WebControls.GridView.HandleUpdate(GridViewRow row, Int32 rowIndex, Boolean causesValidation) +907
System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +704
System.Web.UI.WebControls.GridView.OnBubbleEvent(Object source, EventArgs e) +95
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
System.Web.UI.WebControls.GridViewRow.OnBubbleEvent(Object source, EventArgs e) +123
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +118
System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +135
System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +175
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565
Esse erro acontece quando você tenta preencher uma variavel do tipo inteira (int)? se for isso tente mudar para doble
Anime
Março 24, 2011, 7:03pm
#3
Então, já fiz isso e continua com o erro, mas obrigada pela atenção…
Isto é uma query que está tentando executar?
Se for uma query, rodando diretamente no SQL, dá o mesmo problema?
Eu chutaria que seria esse valor 52,98 que ele está tentando converter para numérico.
A vírgula que atrapalha, pois provavelmente ele converteria se fosse 52.98.
De qualquer forma, faça esse teste que eu disse e experimente trocar a vírgula por ponto.
posta o codigo em que isso acontece
Anime
Março 24, 2011, 7:20pm
#6
Já fiz isso tb, coloquei o ponto, alias já fiz de tudo… :oops:
Não postei o código, por que não é Java…
O erro esta no update…
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default2.aspx.vb" Inherits="Default2" %>
<!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>Untitled Page</title>
<style type="text/css">
.style1
{
width: 100%;
}
.style2
{
height: 52px;
}
.style3
{
height: 359px;
}
.style4
{
height: 31px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<table class="style1">
<tr>
<td bgcolor="#666699" class="style2">
<asp:Label ID="lbl_titulo2" runat="server" Font-Bold="True" Font-Size="Large"
ForeColor="White" Text="Controle de Contas a pagar"></asp:Label>
</td>
</tr>
<tr>
<td bgcolor="#666699" class="style3">
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString7 %>"
DeleteCommand="DELETE FROM TBCONTA WHERE IDCONTA=?"
InsertCommand="INSERT INTO tbconta (data, valor_total, codfornecedor) VALUES (?,?,?)"
ProviderName="<%$ ConnectionStrings:ConnectionString7.ProviderName %>"
SelectCommand="select * from TBConta"
UpdateCommand="UPDATE TBCONTA SET DATA=?, VALOR_TOTAL=?, CODFORNECEDOR=? WHERE IDCONTA=?">
<DeleteParameters>
<asp:FormParameter FormField="IDCONTA" Name="IDCONTA" />
</DeleteParameters>
<UpdateParameters>
<asp:FormParameter FormField="DATA" Name="DATA" />
<asp:FormParameter FormField="VALOR_TOTAL" Name="VALO_TOTAL" />
<asp:FormParameter FormField="CODFORNECEDOR" Name="CODFORNECEDOR" />
</UpdateParameters>
<InsertParameters>
<asp:FormParameter FormField="DATA" Name="DATA" />
<asp:FormParameter FormField="VALOR_TOTAL" Name="VALOR_TOTAL" />
<asp:FormParameter FormField="CODFORNECEDOR" Name="CODFORNECEDOR" />
<asp:FormParameter FormField="IDCONTA" Name="IDCONTA" />
</InsertParameters>
</asp:SqlDataSource>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
CellPadding="4" DataKeyNames="IDConta" DataSourceID="SqlDataSource1"
ForeColor="#333333" GridLines="None">
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<Columns>
<asp:CommandField CancelText="Cancelar" DeleteText="Excluir" EditText="Editar"
HeaderText="Ações" InsertText="Inserir" NewText="Novo" SelectText="Selecionar"
ShowDeleteButton="True" ShowEditButton="True" ShowHeader="True"
ShowInsertButton="True" ShowSelectButton="True" UpdateText="Salvar" />
<asp:BoundField DataField="IDConta" HeaderText="IDConta" ReadOnly="True"
SortExpression="IDConta" />
<asp:BoundField DataField="Data" HeaderText="Data" SortExpression="Data" />
<asp:BoundField DataField="Valor_total" HeaderText="Valor_total"
SortExpression="Valor_total" />
<asp:BoundField DataField="CODFornecedor" HeaderText="CODFornecedor"
SortExpression="CODFornecedor" />
</Columns>
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<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>
<asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False"
CellPadding="4" DataKeyNames="IDConta" DataSourceID="SqlDataSource1"
ForeColor="#333333" GridLines="None" Height="50px" Width="125px">
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<CommandRowStyle BackColor="#E2DED6" Font-Bold="True" />
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<FieldHeaderStyle BackColor="#E9ECF1" Font-Bold="True" />
<PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" />
<Fields>
<asp:BoundField DataField="IDConta" HeaderText="IDConta" ReadOnly="True"
SortExpression="IDConta" />
<asp:BoundField DataField="Data" HeaderText="Data" SortExpression="Data" />
<asp:BoundField DataField="Valor_total" HeaderText="Valor_total"
SortExpression="Valor_total" />
<asp:BoundField DataField="CODFornecedor" HeaderText="CODFornecedor"
SortExpression="CODFornecedor" />
<asp:CommandField CancelText="Cancelar" DeleteText="Excluir" EditText="Editar"
InsertText="Inserir" NewText="Novo" SelectText="Selecionar"
ShowDeleteButton="True" ShowEditButton="True" ShowHeader="True"
ShowInsertButton="True" ShowSelectButton="True" UpdateText="Salvar" />
</Fields>
<HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#999999" />
<AlternatingRowStyle BackColor="White" ForeColor="#284775" />
</asp:DetailsView>
<br />
</td>
</tr>
<tr>
<td bgcolor="#666699" class="style4">
</td>
</tr>
</table>
<div>
</div>
</form>
</body>
</html>
Rodou a query diretamente no SQL Server?
Isso sim é estranho…
Não entendo de asp.net mas vi algo estranho na declaração de parâmetros…
Tem 4 símbolos de interrogação na query Update…e apenas 3 itens definidos como UpdateParameters…
Mas se a query direto no banco funciona, não sei mais o que pode ser…
Anime
Março 24, 2011, 8:02pm
#10
Estranho mesmo… :roll:
Não vi 4 símbolos de interrogação, onde?
4 símbolos de interrogação
3 parâmetros
<UpdateParameters>
<asp:FormParameter FormField="DATA" Name="DATA" />
<asp:FormParameter FormField="VALOR_TOTAL" Name="VALO_TOTAL" />
<asp:FormParameter FormField="CODFORNECEDOR" Name="CODFORNECEDOR" />
</UpdateParameters>
Anime
Março 24, 2011, 8:11pm
#12
[quote=AbelBueno]4 símbolos de interrogação
3 parâmetros
<UpdateParameters>
<asp:FormParameter FormField="DATA" Name="DATA" />
<asp:FormParameter FormField="VALOR_TOTAL" Name="VALO_TOTAL" />
<asp:FormParameter FormField="CODFORNECEDOR" Name="CODFORNECEDOR" />
</UpdateParameters>
[/quote]
Ah sim o ultimo é a condição where idconta=?
Consegui arrumar, mas não me pergunte onde está o erro estou com tanta pressa que preferi fazer tudo de novo… Claro que depois vou ver com calma…
Obrigada pela atenção de vocês…
Segue o código certo…
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" 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>Untitled Page</title>
<style type="text/css">
.style1
{
width: 100%;
height: 680px;
}
.style2
{
height: 53px;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<table class="style1">
<tr>
<td bgcolor="#666699" class="style2">
<asp:Label ID="lbl_titulo1" runat="server" Font-Bold="True" Font-Size="Large"
ForeColor="White" Text="Controle de Contas a Pagar"></asp:Label>
</td>
</tr>
<tr>
<td bgcolor="#666699">
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
ProviderName="<%$ ConnectionStrings:ConnectionString.ProviderName %>"
SelectCommand="select * from TBConta"
UpdateCommand="UPDATE TBCONTA SET DATA=?, VALOR_TOTAL=?, CODFORNECEDOR=? WHERE IDCONTA=?"
DeleteCommand="DELETE FROM TBCONTA WHERE IDCONTA=?">
<DeleteParameters>
<asp:FormParameter FormField="IDCONTA" Name="IDCONTA" />
</DeleteParameters>
<UpdateParameters>
<asp:FormParameter FormField="DATA" Name="DATA" />
<asp:FormParameter FormField="VALOR_TOTAL" Name="VALOR_TOTAL" />
<asp:FormParameter FormField="CODFORNECEDOR" Name="CODFORNECEDOR" />
<asp:FormParameter FormField="IDCONTA" Name="IDCONTA" />
</UpdateParameters>
</asp:SqlDataSource>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
CellPadding="4" DataKeyNames="IDConta" DataSourceID="SqlDataSource1"
ForeColor="#333333" GridLines="None">
<RowStyle BackColor="#F7F6F3" ForeColor="#333333" />
<Columns>
<asp:CommandField CancelText="Cancelar" DeleteText="Excluir" EditText="Editar"
HeaderText="Ações" InsertText="Inserir" NewText="Novo" SelectText="Selecionar"
UpdateText="Alterar" ShowDeleteButton="True" ShowEditButton="True"
ShowHeader="True" ShowInsertButton="True" ShowSelectButton="True" />
<asp:BoundField DataField="IDConta" HeaderText="Código da Conta"
ReadOnly="True" SortExpression="IDConta" />
<asp:BoundField DataField="Data" HeaderText="Data" SortExpression="Data" />
<asp:BoundField DataField="Valor_total" HeaderText="Valor"
SortExpression="Valor_total" />
<asp:BoundField DataField="CODFornecedor" HeaderText="Código do Fornecedor"
SortExpression="CODFornecedor" />
</Columns>
<FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<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>
</td>
</tr>
</table>
</form>
</body>
</html>