Ошибка GridView: ошибка Sql HResult = -2146232060, строка или двоичные данные будут обрезаны

1

Я использую представление сетки asp.net для отображения данных таблицы базы данных на моем веб-сайте. Он работает нормально. Однако кнопка редактирования работает иногда и иногда дает мне ошибку. как я могу заставить его игнорировать ошибки. У меня также есть кнопка выбора, которая перенаправляет на новую страницу, где я могу редактировать строку, а также вести себя одинаково.

Вот код С#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Reporters_Main : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

    }
    protected void cameraman_gridview_SelectedIndexChanged(object sender, EventArgs e)
    {
        //Label2.Text = reporters_gridview.SelectedRow.Cells[0].Text;
        Session["id"] = reporters_gridview.SelectedRow.Cells[0].Text;
        Response.Redirect("Reporters_Search.aspx");

       //"You selected " + reporters_gridview.SelectedRow.Cells[0].Text + ".";
    }
    protected void btn_newrep_Click(object sender, EventArgs e)
    {
        Response.Redirect("Reporters_Form.aspx");
    }
}

Вот html

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Reporters_Main.aspx.cs" Inherits="Reporters_Main" %>

<!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 id="Head1" runat="server">
    <title></title>
    <style type="text/css">
        .style1
        {
            width: 90%;
            height: 615px;
            margin-right: 0px;
        }
        .style2
        {
            text-align: center;
        }
        .style6
        {
            text-decoration: underline;
            text-align: center;
            height: 10px;
        }
        .style7
        {
            height: 5%;
        }
    </style>
</head>
<body link="#ffffff">
    <form id="form1" runat="server">
    <div>

        <table class="style1" align="center" width="100%">
            <tr>
                <td class="style6" align="center" valign="middle" bgcolor="White">
                    </td>
            </tr>
            <tr>
                <td class="style2" align="center" valign="middle" bgcolor="#4A3C8C" 
                    style="padding: 10px" height="10%">
                    <strong style="font-size: 32px; font-weight: bold; color: #FFFFFF;">REPORTERS
                    DETAILS</strong></td>
            </tr>
            <tr>
                <td style="padding: 0px; text-align: right" align="center" 
                    valign="middle" bgcolor="#E7E7FF" height="5%">
                    <asp:Button ID="btn_newrep" runat="server" style="margin-left: 0px" 
                        Text="Add New" Width="10%" onclick="btn_newrep_Click" />
                </td>
            </tr>
            <tr>
                <td style="text-align: center; vertical-align: top;" align="center" 
                    valign="top" height="70%" 
                    width="100%">
                    <asp:GridView ID="reporters_gridview" runat="server" AllowPaging="True" 
                        AllowSorting="True" AutoGenerateColumns="False" BackColor="White" 
                        BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" CellPadding="3" 
                        DataKeyNames="Reporter_ID" DataSourceID="SqlDataSource_Reporters" 
                        GridLines="Horizontal" Width="100%" Height="100%" PageSize="20" 
                        onselectedindexchanged="cameraman_gridview_SelectedIndexChanged">
                        <AlternatingRowStyle BackColor="#F7F7F7" />
                        <Columns>
                            <asp:BoundField DataField="Reporter_ID" HeaderText="Reporter_ID" 
                                SortExpression="Reporter_ID" InsertVisible="False" ReadOnly="True">
                            </asp:BoundField>
                            <asp:BoundField DataField="Reporter_Name" HeaderText="Reporter_Name" 
                                SortExpression="Reporter_Name" >
                            <ItemStyle HorizontalAlign="Left" VerticalAlign="Middle" />
                            </asp:BoundField>
                            <asp:BoundField DataField="Reporter_Email" HeaderText="Reporter_Email" 
                                SortExpression="Reporter_Email" >
                            <ItemStyle HorizontalAlign="Left" VerticalAlign="Middle" />
                            </asp:BoundField>
                            <asp:BoundField DataField="Reporter_Mobile" HeaderText="Reporter_Mobile" 
                                SortExpression="Reporter_Mobile" />
                            <asp:CommandField ShowSelectButton="True" 
                                ShowEditButton="True">
                            <ItemStyle BackColor="#4A3C8C" ForeColor="White" />
                            </asp:CommandField>
                        </Columns>
                        <FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
                        <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
                        <PagerSettings Mode="NumericFirstLast" />
                        <PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
                        <RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
                        <SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
                        <SortedAscendingCellStyle BackColor="#F4F4FD" />
                        <SortedAscendingHeaderStyle BackColor="#5A4C9D" />
                        <SortedDescendingCellStyle BackColor="#D8D8F0" />
                        <SortedDescendingHeaderStyle BackColor="#3E3277" />
                    </asp:GridView>
                    <asp:SqlDataSource ID="SqlDataSource_Reporters" runat="server" 
                        ConnectionString="<%$ ConnectionStrings:IngestConnectionString %>" 

                        SelectCommand="SELECT [Reporter_ID], [Reporter_Name], [Reporter_Email], [Reporter_Mobile] FROM [Reporter] ORDER BY [Reporter_ID], [Reporter_Name]" 
                        ConflictDetection="CompareAllValues" 
                        DeleteCommand="DELETE FROM [Reporter] WHERE [Reporter_ID] = @original_Reporter_ID AND (([Reporter_Name] = @original_Reporter_Name) OR ([Reporter_Name] IS NULL AND @original_Reporter_Name IS NULL)) AND (([Reporter_Email] = @original_Reporter_Email) OR ([Reporter_Email] IS NULL AND @original_Reporter_Email IS NULL)) AND (([Reporter_Mobile] = @original_Reporter_Mobile) OR ([Reporter_Mobile] IS NULL AND @original_Reporter_Mobile IS NULL))" 
                        InsertCommand="INSERT INTO [Reporter] ([Reporter_Name], [Reporter_Email], [Reporter_Mobile]) VALUES (@Reporter_Name, @Reporter_Email, @Reporter_Mobile)" 
                        OldValuesParameterFormatString="original_{0}" 
                        UpdateCommand="UPDATE [Reporter] SET [Reporter_Name] = @Reporter_Name, [Reporter_Email] = @Reporter_Email, [Reporter_Mobile] = @Reporter_Mobile WHERE [Reporter_ID] = @original_Reporter_ID AND (([Reporter_Name] = @original_Reporter_Name) OR ([Reporter_Name] IS NULL AND @original_Reporter_Name IS NULL)) AND (([Reporter_Email] = @original_Reporter_Email) OR ([Reporter_Email] IS NULL AND @original_Reporter_Email IS NULL)) AND (([Reporter_Mobile] = @original_Reporter_Mobile) OR ([Reporter_Mobile] IS NULL AND @original_Reporter_Mobile IS NULL))">
                        <DeleteParameters>
                            <asp:Parameter Name="original_Reporter_ID" Type="Int32" />
                            <asp:Parameter Name="original_Reporter_Name" Type="String" />
                            <asp:Parameter Name="original_Reporter_Email" Type="String" />
                            <asp:Parameter Name="original_Reporter_Mobile" Type="String" />
                        </DeleteParameters>
                        <InsertParameters>
                            <asp:Parameter Name="Reporter_Name" Type="String" />
                            <asp:Parameter Name="Reporter_Email" Type="String" />
                            <asp:Parameter Name="Reporter_Mobile" Type="String" />
                        </InsertParameters>
                        <UpdateParameters>
                            <asp:Parameter Name="Reporter_Name" Type="String" />
                            <asp:Parameter Name="Reporter_Email" Type="String" />
                            <asp:Parameter Name="Reporter_Mobile" Type="String" />
                            <asp:Parameter Name="original_Reporter_ID" Type="Int32" />
                            <asp:Parameter Name="original_Reporter_Name" Type="String" />
                            <asp:Parameter Name="original_Reporter_Email" Type="String" />
                            <asp:Parameter Name="original_Reporter_Mobile" Type="String" />
                        </UpdateParameters>
                    </asp:SqlDataSource>
                </td>
            </tr>
            <tr>
                <td align="center" valign="middle" bgcolor="#4A3C8C" class="style7" 
                    width="100%">
                    </td>
            </tr>
        </table>

    </div>
    </form>
</body>
</html>

Вот ошибка. (Иногда я получаю эту ошибку. В большинстве случаев это нормально, и она обновляет таблицу)

System.Data.SqlClient.SqlException was unhandled by user code
  HResult=-2146232060
  Message=String or binary data would be truncated.
The statement has been terminated.
  Source=.Net SqlClient Data Provider
  ErrorCode=-2146232060
  Class=16
  LineNumber=1
  Number=8152
  Procedure=""
  Server=.
  State=4
  StackTrace:
       at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action'1 wrapCloseInAction)
       at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action'1 wrapCloseInAction)
       at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
       at System.Data.SqlClient.TdsParser.TryRun(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj, Boolean& dataReady)
       at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async, Int32 timeout, Boolean asyncWrite)
       at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(TaskCompletionSource'1 completion, String methodName, Boolean sendToPipe, Int32 timeout, Boolean asyncWrite)
       at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
       at Search_Reporters.btn_Save_Click(Object sender, EventArgs e) in c:\Users\Gerard\Desktop\Ingest\Reporters_Search.aspx.cs:line 61
       at System.Web.UI.WebControls.Button.OnClick(EventArgs e)
       at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
       at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
       at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
       at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
       at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
  InnerException: 
  • 0
    Этот вопрос не имеет смысла без дополнительной информации или кода.
  • 0
    Показать код, предоставьте точную информацию об ошибке, чтобы ответить на ваш вопрос
Показать ещё 2 комментария
Теги:

2 ответа

0
Лучший ответ

определить причину ошибки и попытаться "исправить" ее, или, альтернативно, установить условия или попытку уловить, чтобы предотвратить появление ошибки (в крайнем случае, попытка первой)

  • 0
    Пожалуйста, просмотрите ошибку и дайте мне знать, как я могу это исправить. Спасибо за вашу помощь
  • 0
    ошибка говорит о том, что «Строковые или двоичные данные будут усечены. Оператор завершен». Я предполагаю, что вы вводите превышает максимальную длину поля в вашей таблице. либо увеличьте длину поля в таблице, либо ограничьте длину ввода.
Показать ещё 2 комментария
0

Вы должны указать некоторые правильные коды своей ошибки.

  • 0
    это комментарий, а не ответ
  • 0
    Я предоставил детали ошибки. Спасибо за вашу помощь

Ещё вопросы

Сообщество Overcoder
Наверх
Меню