2013-04-25 1 views
2

고객 세부 정보를 업데이트하려고 할 때 다음과 같은 오류 메시지가 나타납니다. detailsview를 사용 중입니다.하나 이상의 필수 매개 변수에 값이 지정되지 않았습니다. 항목을 업데이트 할 때

예외 정보 : System.Data.OleDb.OleDbException : 하나 개 이상의 필수 매개 변수에 대한 주어진 값 없음.

일반적으로이 값은 Null 또는 길이가 0 인 문자열과 관련이 있습니다. 지금까지는 그렇게 좋았지 만 어떻게 해결할 수 있습니까?

잘 삽입하고 삭제하십시오. 심지어 일하는 데 사용되는 업데이트,하지만 뭔가가 변경되어 있어야합니다 그리고 난 그냥 알아낼 수 없습니다. 당신의 매개 변수 목록은 11 매개 변수
특히 의심스러운 최신 하나를 포함하는 동안 쿼리

UPDATE Customers] SET [CompanyName] = ?, 
         [ContactName] = ?, 
         [ContactTitle] = ?, 
         [Address] = ?, 
         [City] = ?, 
         [Region] = ?, 
         [PostalCode] = ?, 
         [Country] = ?, 
         [Phone] = ?, 
         [Fax] = ? 
WHERE (([CustomerID] = ?) OR ([CustomerID] IS NULL AND ? IS NULL)) 

에서

UpdateCommand="UPDATE [Customers] SET [CompanyName] = ?, [ContactName] = ?, [ContactTitle] = ?, [Address] = ?, [City] = ?, [Region] = ?, [PostalCode] = ?, [Country] = ?, [Phone] = ?, [Fax] = ? WHERE (([CustomerID] = ?) OR ([CustomerID] IS NULL AND ? IS NULL))"> 

<UpdateParameters> 
       <asp:Parameter Name="CompanyName" Type="String" /> 
       <asp:Parameter Name="ContactName" Type="String" /> 
       <asp:Parameter Name="ContactTitle" Type="String" /> 
       <asp:Parameter Name="Address" Type="String" /> 
       <asp:Parameter Name="City" Type="String" /> 
       <asp:Parameter Name="Region" Type="String" /> 
       <asp:Parameter Name="PostalCode" Type="String" /> 
       <asp:Parameter Name="Country" Type="String" /> 
       <asp:Parameter Name="Phone" Type="String" /> 
       <asp:Parameter Name="Fax" Type="String" /> 
       <asp:Parameter Name="CustomerID" Type="String" /> 
</UpdateParameters> 

<FieldHeaderStyle CssClass="fieldheader"></FieldHeaderStyle> 
      <Fields> 
       <asp:BoundField DataField="CustomerID" HeaderText="CustomerID" ReadOnly="False" 
        SortExpression="CustomerID" /> 
       <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" 
        SortExpression="CompanyName" /> 
       <asp:BoundField DataField="ContactName" HeaderText="ContactName" 
        SortExpression="ContactName" /> 
       <asp:BoundField DataField="ContactTitle" HeaderText="ContactTitle" 
        SortExpression="ContactTitle" /> 
       <asp:BoundField DataField="Address" HeaderText="Address" 
        SortExpression="Address" /> 
       <asp:BoundField DataField="City" HeaderText="City" SortExpression="City" /> 
       <asp:BoundField DataField="Region" HeaderText="Region" 
        SortExpression="Region" /> 
       <asp:BoundField DataField="PostalCode" HeaderText="PostalCode" 
        SortExpression="PostalCode" /> 
       <asp:BoundField DataField="Country" HeaderText="Country" 
        SortExpression="Country" /> 
       <asp:BoundField DataField="Phone" HeaderText="Phone" SortExpression="Phone" /> 
       <asp:BoundField DataField="Fax" HeaderText="Fax" SortExpression="Fax" /> 
       <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" /> 
      </Fields> 
+0

이 SQL Server 또는 액세스가 해결? SQL Server는 명명 된 매개 변수를 사용하고, Access는 인덱싱 된 매개 변수를 사용합니다. – Dai

답변

1

나는 12 개 매개 변수의 자리를 계산합니다. 매개 변수로 열 이름을 전달할 수 없습니다.
거기서 무엇을하려하십니까? 당신이

+0

완벽한 스티브, 그게 전부입니다. 그것은 위대한 작품. 귀하의 빠른 도움에 많은 감사드립니다! :) – Ron

-1

제거 작품을해야 AND ? IS NULL을 제거 할 경우 ((AND? NULL)입니다) 그것을

+0

아마 그 문제를 해결하는 방법을 설명 할 수 있습니다. – jkris