で働いていません。私はいくつかの反復と成功したメソッドを試してみました。私は、問題が私のObjectDataSource
にあると思っていますが、必要な正しい構文がわからない。ここでConvertemptystringtonullは、私は私のGridViewの中でテーブルを編集するときにnullに空の文字列を変換しようとしているの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 =』真を取る場合は、SQL文が(それがNullを送信していないという意味)の値を期待している。私はこのように多くのバリエーションを試してみたとの任意の情報を見つけることができないと文句を言いクラスライブラリ。任意の助けいただければ幸いです!事前に
ありがとう!
パラメータを設定する際に私ができることはありますか? –
私はプロシージャの型を "ByVal Distributor_Email_2 As String"という文字列として設定していると思います。したがって、それは文字列を期待しており、nullではありません。これを回避する方法はありますか?私は、このリソースを見つけましたが、私は答えずに、まだだ –
:http://msdn.microsoft.com/en-us/library/ms366709.aspx –