2016-09-10 3 views
0

gridview에서 행을 업데이트하려고하는데 다음과 같은 오류가 발생합니다. 'ProductName' 선택한 데이터 원본에서 찾을 수 없습니다.'ProductName'이름의 필드 또는 속성을 선택한 데이터 소스에서 찾을 수 없습니다.

Northwind 데이터베이스를 사용하고 있습니다.

protected void gvProducts_RowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 
    SqlConnection connection = new SqlConnection(); 
    connection.ConnectionString = ConfigurationManager.ConnectionStrings["myConnection"].ConnectionString; 
    SqlCommand command = new SqlCommand(); 
    command.Connection = connection; 
    command.CommandText = "UPDATE Products SET ProductName = @ProductName WHERE ProductID [email protected] ProductID"; 
    command.Parameters.AddWithValue("@ProductID", Convert.ToInt32(gvProducts.DataKeys[e.RowIndex]["ProductID"])); 
    TextBox tb = (TextBox)gvProducts.Rows[e.RowIndex].Cells[0].Controls[0]; 
    command.Parameters.AddWithValue("@ProductName", tb.Text); 
    int effect = 0; 
    try 
    { 
     connection.Open(); 
     effect = command.ExecuteNonQuery(); 
    } 
    catch (Exception ex) 
    { 

    } 
    finally 
    { 
     connection.Close(); 
     gvProducts.EditIndex = -1; 
     gvProducts.DataBind(); 
    } 
    if (effect != 0) 
     fillDetailed(); 
} 

데이터베이스 방식은 다음과 같습니다 :

내 코드입니다

CREATE TABLE [dbo].[Products] (
[ProductID]  INT   IDENTITY (1, 1) NOT NULL, 
[ProductName]  NVARCHAR (40) NOT NULL, 
[SupplierID]  INT   NULL, 
[CategoryID]  INT   NULL, 
[QuantityPerUnit] NVARCHAR (20) NULL, 
[UnitPrice]  MONEY   CONSTRAINT [DF_Products_UnitPrice] DEFAULT ((0)) NULL, 
[UnitsInStock] SMALLINT  CONSTRAINT [DF_Products_UnitsInStock] DEFAULT ((0)) NULL, 
[UnitsOnOrder] SMALLINT  CONSTRAINT [DF_Products_UnitsOnOrder] DEFAULT ((0)) NULL, 
[ReorderLevel] SMALLINT  CONSTRAINT [DF_Products_ReorderLevel] DEFAULT ((0)) NULL, 
[Discontinued] BIT   CONSTRAINT [DF_Products_Discontinued] DEFAULT ((0)) NOT NULL, 
CONSTRAINT [PK_Products] PRIMARY KEY CLUSTERED ([ProductID] ASC), 
CONSTRAINT [FK_Products_Categories] FOREIGN KEY ([CategoryID]) REFERENCES [dbo].[Categories] ([CategoryID]), 
CONSTRAINT [FK_Products_Suppliers] FOREIGN KEY ([SupplierID]) REFERENCES [dbo].[Suppliers] ([SupplierID]), 
CONSTRAINT [CK_Products_UnitPrice] CHECK ([UnitPrice]>=(0)), 
CONSTRAINT [CK_ReorderLevel] CHECK ([ReorderLevel]>=(0)), 
CONSTRAINT [CK_UnitsInStock] CHECK ([UnitsInStock]>=(0)), 
CONSTRAINT [CK_UnitsOnOrder] CHECK ([UnitsOnOrder]>=(0)) 

);

GO 비공유 색인 만들기 [CategoriesProducts] ON [dbo]. [제품] ([CategoryID] ASC);

GO [범주 ID] ON [제품] ([CategoryID] ASC);

GO NONCLUSTERED INDEX [제품명] [DBO]를 ON [상품] ([제품명] ASC)을 만들.;

GO 비 클러스터형 인덱스 [SupplierID] ON [제품] ([공급 업체 ID] ASC);

GO 비 클러스터형 인덱스 생성 [SuppliersProducts] ON [dbo]. [제품] ([SupplierID] ASC);

<asp:GridView ID="gvProducts" runat="server" AllowPaging="True" AutoGenerateColumns="False" CellPadding="4" ForeColor="#333333" GridLines="None" OnRowCancelingEdit="gvProducts_RowCancelingEdit" OnRowEditing="gvProducts_RowEditing" OnRowUpdating="gvProducts_RowUpdating"> 
     <AlternatingRowStyle BackColor="White" /> 
     <Columns> 
      <asp:BoundField DataField="ProductName" HeaderText="Производ" /> 
      <asp:BoundField DataField="UnitPrice" HeaderText="Единечна цена" /> 
      <asp:BoundField DataField="Quantity" HeaderText="Количина" /> 
      <asp:CommandField CancelText="Откажи" EditText="Уреди" ShowEditButton="True" UpdateText="Промени" /> 
     </Columns> 
     <EditRowStyle BackColor="#7C6F57" /> 
     <FooterStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" /> 
     <HeaderStyle BackColor="#1C5E55" Font-Bold="True" ForeColor="White" /> 
     <PagerStyle BackColor="#666666" ForeColor="White" HorizontalAlign="Center" /> 
     <RowStyle BackColor="#E3EAEB" /> 
     <SelectedRowStyle BackColor="#C5BBAF" Font-Bold="True" ForeColor="#333333" /> 
     <SortedAscendingCellStyle BackColor="#F8FAFA" /> 
     <SortedAscendingHeaderStyle BackColor="#246B61" /> 
     <SortedDescendingCellStyle BackColor="#D4DFE1" /> 
     <SortedDescendingHeaderStyle BackColor="#15524A" /> 
    </asp:GridView> 
+0

'ProductName'이라는 열이 있습니까? – Rahul

+0

예, Northwind 데이터베이스에 그러한 열이 있습니다 –

+0

Ca'products' 테이블에 대한 스키마를 게시 하시겠습니까? – Rahul

답변

0

사용하는 데이터 소스의 어떤 종류 :

exception

는 .ASPX입니까? 개체 데이터 원본/SQL 데이터 원본? 데이터 소스를 만든 후 테이블 정의가 변경되었는지 그리고 데이터 소스가 새로 고쳐지지 않았는지 확인하십시오. 이 경우 테이블 정의의 업데이트 된 열은 반영되지 않으며 이와 같은 예외가 발생할 수 있습니다.

관련 문제