gridview에서 테이블을 편집 할 때 빈 문자열을 null로 변환하려고합니다. 나는 성공과 함께 여러 반복과 방법을 시도했다. 문제가 내 ObjectDataSource
에있는 것 같지만 필요한 올바른 구문을 모릅니다. 여기 Convertemptystringtonull이 gridview에서 작동하지 않습니다.
<asp:GridView
ID="grdMyDistributors"
DataSourceID = "srcGetMyDistributors"
CssClass="GridViewStyle"
DataKeyNames = "ID_Distributor"
AutoGenerateColumns = "false" AutoGenerateEditButton = "true"
GridLines="None"
runat="server" >
<Columns>
<asp:BoundField
DataField="DistributorName"
HeaderText="Distributor"
convertemptystringtonull="true"
ReadOnly = "True" />
<asp:BoundField
DataField="Distributor_Email_1"
HeaderText="Distributor Email 1"
convertemptystringtonull="true" >
<ItemStyle BackColor="#f6f17c"/>
</asp:BoundField>
<asp:BoundField
DataField="Distributor_Email_2"
HeaderText="Distributor Email 2"
convertemptystringtonull="true" >
<ItemStyle BackColor="#f6f17c"/>
</asp:BoundField>
<asp:BoundField
DataField="Minimum_Purchase_Amount"
HeaderText="Minimum Purchase Amount"
dataformatstring="{0:c}"
convertemptystringtonull="true" >
<ItemStyle BackColor="#f6f17c" />
</asp:BoundField>
</Columns>
</asp:GridView>
내
ObjectDataSource
입니다 : 여기
<asp:ObjectDataSource
ID="srcGetMyDistributors"
TypeName = "AAA.Distributors"
SelectMethod = "GetDistributorsPagingFiltered"
UpdateMethod = "UpdateDistributors"
EnableCaching="false"
ConvertNulltoDBNull = "true"
runat="server" >
<SelectParameters>
<asp:ProfileParameter Name="ID_Account" PropertyName="ID_Account" />
</SelectParameters>
<UpdateParameters>
<asp:ControlParameter ControlID="grdMyDistributors" Name="ID_Distributor" PropertyName="SelectedValue" Type="Int32" />
</UpdateParameters>
</asp:ObjectDataSource>
내 업데이트 방법
Public Shared Sub UpdateDistributors(ByVal ID_Distributor As Integer, ByVal Distributor_Email_1 As String, ByVal Distributor_Email_2 As String, ByVal Minimum_Purchase_Amount As Decimal)
' Initialize command
Dim con As New SqlConnection(_connectionString)
Dim cmd As New SqlCommand("UpdateDistributors", con)
cmd.CommandType = CommandType.StoredProcedure
cmd.Connection = con
' Initialize parameters
cmd.Parameters.AddWithValue("@ID_Distributor", A2AID_Restaurant_To_Distributor)
cmd.Parameters.AddWithValue("@Distributor_Email_1", Distributor_Email_1)
cmd.Parameters.AddWithValue("@Distributor_Email_2", Distributor_Email_2)
cmd.Parameters.AddWithValue("@Minimum_Purchase_Amount", Minimum_Purchase_Amount)
' Execute command
Using (con)
con.Open()
cmd.ExecuteNonQuery()
End Using
End Sub
이다 나는 그대로 코드를 실행하면, 내가 "유형의 개체 말하는 오류가 '시스템 .DBNull ''System.String '형식으로 변환 할 수 없습니다. " Update 메서드에 보내고 문자열을 예상 할 때 오류가 발생할 가능성이 큽니다. ObjectDataSource에서 "ConvertNulltoDBNull ="true "를 꺼내면 SQL 문이 값 (null을 보내지 않음을 의미)을 기다리고 있다고 불평합니다. 이렇게 많은 변형을 시도해 보았습니다. 클래스 라이브러리는. 어떤 도움을 주시면 감사하겠습니다!
사전에 감사!
매개 변수를 설정할 때 내가 할 수있는 일이 있습니까? –
나는 프로 시저의 형식을 "ByVal Distributor_Email_2 String"문자열로 설정하는 것이 나에게서 왔다고 생각합니다. 따라서 그것은 문자열이 아닌 null을 기대합니다. 이 문제를 해결할 방법이 있습니까? –
이 리소스를 찾았지만 대답이 아직 없습니다. http://msdn.microsoft.com/en-us/library/ms366709.aspx –