2011-07-21 12 views
0

DropDownListListBoxが正常に機能しています。ユーザーがProductsテーブルからListBoxProductsMailテーブルに選択を移動すると、DropDownListから選択した値をデータベースに挿入できるようにする必要があります。私は"+EmailDDN.SelectedItem+""+EmailDDN.SelectedValue+"などのような成功なしのSQL文字列を複数回修正しようとしました。EmailLabel1ラベルに表示するために選択された値を取得できますが、クエリには表示されません。解決策を提示してください。 私はあなたの時間をいただきありがとうございます。 _ JT単一のC#ドロップダウン選択からクエリ文字列に値を渡す

こんにちはsuryakiran、 "DestinationDataSource" で

なしの成功と
"UPDATE ProductsMail SET Name = @Name, Email = ' + @Email + ', EmailID = @EmailID WHERE ID = @ID" and "UPDATE ProductsMail SET Name = @Name, Email = ' +EmailDDN.SelectedItem+ ', EmailID = @EmailID WHERE ID = @ID" 

その他:

UpdateCommand="UPDATE ProductsMail SET Name = @Name, Email = @Email, EmailID = @EmailID WHERE ID = @ID". 

私は、次のような修正を試みてきました。あなたは<UpdateParameters>セクションでこれを行うことにより、中にあなたの電子メールの値を渡すことができ<SelectParameters>セクションで<asp:ControlParameter>を使用していたのと同じ方法で

<telerik:RadScriptManager ID="ScriptManager" runat="server" /> 
<telerik:RadAjaxLoadingPanel runat="server" ID="RadAjaxLoadingPanel1" /> 
<telerik:RadAjaxPanel runat="server" ID="RadAjaxPanel1" LoadingPanelID="RadAjaxLoadingPanel1"> 
    <asp:SqlDataSource ID="SqlDataSource2" ConnectionString="<%$ ConnectionStrings:IPdataConnectionString %>" 
    ProviderName="System.Data.SqlClient" SelectCommand="SELECT DISTINCT Email FROM [aspnet_Membership]" 
    runat="server"></asp:SqlDataSource> 
    <label for="EmailDDN"> 
    <asp:Label ID="Label2" runat="server" class="text">Select Email:&nbsp;</asp:Label> 
    </label> 
    <asp:DropDownList ID="EmailDDN" runat="server" AutoPostBack="True" DataSourceID="SqlDataSource2" 
    AppendDataBoundItems="True" DataTextField="Email" DataValueField="Email" OnSelectedIndexChanged="DDN_SelectedIndexChanged"> 
    <asp:ListItem> 
      Select your email address 
    </asp:ListItem> 
    </asp:DropDownList> 
    <br /> 
    <br /> 
    <asp:Label ID="EmailLabel1" runat="server" /> 
    <br /> 
    <br /> 
    <br /> 
</telerik:RadAjaxPanel> 
<telerik:RadAjaxLoadingPanel runat="server" ID="RadAjaxLoadingPanel2" /> 
<telerik:RadAjaxPanel runat="server" ID="RadAjaxPanel2" LoadingPanelID="RadAjaxLoadingPanel1"> 
    <telerik:RadListBox runat="server" ID="RadListBox1" DataSourceID="SourceDataSource" 
    AllowAutomaticUpdates="true" DataKeyField="ID" DataTextField="Name" DataSortField="SortOrder" 
    Width="230px" Height="200px" AllowTransfer="true" TransferToID="RadListBox2" TransferMode="Copy" 
    AutoPostBackOnTransfer="true" /> 
    <telerik:RadListBox runat="server" ID="RadListBox2" DataSourceID="DestinationDataSource" 
    AllowAutomaticUpdates="true" DataKeyField="ID" DataTextField="Name" DataSortField="SortOrder" 
    Width="230px" Height="200px" AllowReorder="true" AutoPostBackOnReorder="true" AllowDelete="True" 
    AutoPostBackOnDelete="true" /> 
</telerik:RadAjaxPanel> 
<asp:SqlDataSource ID="SourceDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:IPdataConnectionString %>" 
    ProviderName="System.Data.SqlClient" DeleteCommand="DELETE FROM Products WHERE ID = @ID" 
    InsertCommand="INSERT INTO Products (Name, ID, Email, EmailID) VALUES (@Name, @ID, @Email, @EmailID)" 
    SelectCommand="SELECT Name, ID, Email FROM Products" UpdateCommand="UPDATE Products SET Name = @Name, Email = @Email, EmailID = @EmailID WHERE ID = @ID"> 
    <UpdateParameters> 
    <asp:Parameter Name="Name" Type="String" /> 
    <asp:Parameter Name="ID" Type="Int32" /> 
    <asp:Parameter Name="Email" Type="String" /> 
    <asp:Parameter Name="EmailID" Type="Int32" /> 
    </UpdateParameters> 
    <DeleteParameters> 
    <asp:Parameter Name="ID" Type="Int32" /> 
    </DeleteParameters> 
    <InsertParameters> 
    <asp:Parameter Name="Name" Type="String" /> 
    <asp:Parameter Name="ID" Type="Int32" /> 
    <asp:Parameter Name="Email" Type="String" /> 
    <asp:Parameter Name="EmailID" Type="Int32" /> 
    </InsertParameters> 
    <SelectParameters> 
    <asp:ControlParameter ControlID="EmailDDN" DefaultValue="Select One" Name="Email" 
     PropertyName="SelectedValue" /> 
    </SelectParameters> 
</asp:SqlDataSource> 
<asp:SqlDataSource ID="DestinationDataSource" runat="server" ConnectionString="<%$ ConnectionStrings:IPdataConnectionString %>" 
    ProviderName="System.Data.SqlClient" DeleteCommand="DELETE FROM ProductsMail WHERE ID = @ID" 
    InsertCommand="INSERT INTO ProductsMail (Name, ID, Email, EmailID) VALUES (@Name, @ID, @Email, @EmailID)" 
    SelectCommand="SELECT Name, ID, Email FROM ProductsMail" UpdateCommand="UPDATE ProductsMail SET Name = @Name, Email = @Email, EmailID = @EmailID WHERE ID = @ID"> 
    <UpdateParameters> 
    <asp:Parameter Name="Name" Type="String" /> 
    <asp:Parameter Name="Email" Type="String" /> 
    <asp:Parameter Name="EmailID" Type="Int32" /> 
    <asp:Parameter Name="ID" Type="Int32" /> 
    </UpdateParameters> 
    <DeleteParameters> 
    <asp:Parameter Name="ID" Type="Int32" /> 
    </DeleteParameters> 
    <InsertParameters> 
    <asp:Parameter Name="Name" Type="String" /> 
    <asp:Parameter Name="Email" Type="String" /> 
    <asp:Parameter Name="EmailID" Type="Int32" /> 
    <asp:Parameter Name="ID" Type="Int32" /> 
    </InsertParameters> 
    <SelectParameters> 
    <asp:ControlParameter ControlID="EmailDDN" DefaultValue="Select One" Name="Email" 
     PropertyName="SelectedValue" /> 
    </SelectParameters> 
</asp:SqlDataSource> 
============================================ 
============================================ 
protected void DDN_SelectedIndexChanged(System.Object sender, System.EventArgs e) 
{ 
    EmailLabel1.Text = EmailDDN.SelectedItem.ToString(); 
} 
+0

あなたはそこにSQLデータソースを定義し、選択変更に電子メールのラベルを更新しますが、どこが実際にデータベースの更新を呼ぶのですか? – Frater

+0

上記の返信... –

答えて

1

<InsertParameters> 
    <asp:Parameter Name="Name" Type="String" /> 
    <asp:ControlParameter Name="Email" PropertyName="SelectedValue" ControlID="EmailDDN" /> 
    <asp:Parameter Name="EmailID" Type="Int32" /> 
    <asp:Parameter Name="ID" Type="Int32" /> 
    </InsertParameters> 
+0

ありがとうrtpHarry、そのトリックをした! 1つの追加的な質問。 ProductsテーブルのMy IDカラムは "[ID] [int] IDENTITY(1,1)NOT NULL"と設定されています。挿入が発生すると、ProductsMail ID列は数値の代わりにNULLを受け取ります。どうすればそれを挿入することができますか? –

+0

あなたは本当に新しい質問のための新しいスレッドを開始する必要がありますが、私はおそらくあなたは全体のと@IDを挿入から削除することができると思います。新しいレコードを追加するときに、自動的に増分するID列としてそれを無視するだけです。 – rtpHarry

関連する問題