Erro SQL Server [Resolvido]

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

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

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?

Sim e não deu erro…

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…

Estranho mesmo… :roll:

Não vi 4 símbolos de interrogação, onde?

4 símbolos de interrogação

3 parâmetros

&lt;UpdateParameters&gt;  
  &lt;asp:FormParameter FormField="DATA" Name="DATA" /&gt;  
  &lt;asp:FormParameter FormField="VALOR_TOTAL" Name="VALO_TOTAL" /&gt;  
  &lt;asp:FormParameter FormField="CODFORNECEDOR" Name="CODFORNECEDOR" /&gt;  
&lt;/UpdateParameters&gt;  

[quote=AbelBueno]4 símbolos de interrogação

3 parâmetros

&lt;UpdateParameters&gt; &lt;asp:FormParameter FormField="DATA" Name="DATA" /&gt; &lt;asp:FormParameter FormField="VALOR_TOTAL" Name="VALO_TOTAL" /&gt; &lt;asp:FormParameter FormField="CODFORNECEDOR" Name="CODFORNECEDOR" /&gt; &lt;/UpdateParameters&gt; [/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…


&lt;%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %&gt;

&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;

&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head runat="server"&gt;
    &lt;title&gt;Untitled Page&lt;/title&gt;
    &lt;style type="text/css"&gt;
        .style1
        {
            width: 100%;
            height: 680px;
        }
        .style2
        {
            height: 53px;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
    &lt;form id="form1" runat="server"&gt;
    &lt;table class="style1"&gt;
        &lt;tr&gt;
            &lt;td bgcolor="#666699" class="style2"&gt;
                &lt;asp:Label ID="lbl_titulo1" runat="server" Font-Bold="True" Font-Size="Large" 
                    ForeColor="White" Text="Controle de Contas a Pagar"&gt;&lt;/asp:Label&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td bgcolor="#666699"&gt;
                &lt;asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                    ConnectionString="&lt;%$ ConnectionStrings:ConnectionString %&gt;" 
                    ProviderName="&lt;%$ ConnectionStrings:ConnectionString.ProviderName %&gt;" 
                    SelectCommand="select * from TBConta" 
                    
                    UpdateCommand="UPDATE TBCONTA SET DATA=?, VALOR_TOTAL=?, CODFORNECEDOR=?  WHERE IDCONTA=?" 
                    DeleteCommand="DELETE FROM TBCONTA WHERE IDCONTA=?"&gt;
                    &lt;DeleteParameters&gt;
                        &lt;asp:FormParameter FormField="IDCONTA" Name="IDCONTA" /&gt;
                    &lt;/DeleteParameters&gt;
                    &lt;UpdateParameters&gt;
                        &lt;asp:FormParameter FormField="DATA" Name="DATA" /&gt;
                        &lt;asp:FormParameter FormField="VALOR_TOTAL" Name="VALOR_TOTAL" /&gt;
                        &lt;asp:FormParameter FormField="CODFORNECEDOR" Name="CODFORNECEDOR" /&gt;
                        &lt;asp:FormParameter FormField="IDCONTA" Name="IDCONTA" /&gt;
                    &lt;/UpdateParameters&gt;
                &lt;/asp:SqlDataSource&gt;
                &lt;asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 
                    CellPadding="4" DataKeyNames="IDConta" DataSourceID="SqlDataSource1" 
                    ForeColor="#333333" GridLines="None"&gt;
                    &lt;RowStyle BackColor="#F7F6F3" ForeColor="#333333" /&gt;
                    &lt;Columns&gt;
                        &lt;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" /&gt;
                        &lt;asp:BoundField DataField="IDConta" HeaderText="Código da Conta" 
                            ReadOnly="True" SortExpression="IDConta" /&gt;
                        &lt;asp:BoundField DataField="Data" HeaderText="Data" SortExpression="Data" /&gt;
                        &lt;asp:BoundField DataField="Valor_total" HeaderText="Valor" 
                            SortExpression="Valor_total" /&gt;
                        &lt;asp:BoundField DataField="CODFornecedor" HeaderText="Código do Fornecedor" 
                            SortExpression="CODFornecedor" /&gt;
                    &lt;/Columns&gt;
                    &lt;FooterStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /&gt;
                    &lt;PagerStyle BackColor="#284775" ForeColor="White" HorizontalAlign="Center" /&gt;
                    &lt;SelectedRowStyle BackColor="#E2DED6" Font-Bold="True" ForeColor="#333333" /&gt;
                    &lt;HeaderStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" /&gt;
                    &lt;EditRowStyle BackColor="#999999" /&gt;
                    &lt;AlternatingRowStyle BackColor="White" ForeColor="#284775" /&gt;
                &lt;/asp:GridView&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/table&gt;
    &lt;/form&gt;
&lt;/body&gt;
&lt;/html&gt;