0

私は C# を使用した ASP.NET の新しい開発者です。私は、私の部署の従業員から提出された提案のプールとして機能する、イントラネットの Web ベースの提案アプリケーションを開発しました。

次のデータベース設計があります。

Log Table: ID, Title, Description, DateSubmitted, Username, TypeID, StatusID
SuggestionsType Table: ID, Type
SuggestionsStatus Table: ID, Status
Employee Table: Username, Name, Title

次のコードを使用して、タイトル、送信日、説明、およびユーザー名を含む提案を挿入できます。

ASP.NET コード

<div ID="contactform">
                <ol>
                    <li>
                        <label for="subject">
                        Type</label>
                        <asp:DropDownList ID="DropDownList" runat="server" DataSourceID="SqlDataSource1" Width="155px" 
                                    Font-Bold="True" ForeColor="#006666" AppendDataBoundItems="false" 
                                    DataTextField="Type" DataValueField="ID" AutoPostBack="true" OnDataBound="DropDownList_DataBound">
                        </asp:DropDownList>
                        <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                                    ConnectionString="<%$ ConnectionStrings:testConnectionString %>" 
                                    SelectCommand="SELECT * FROM [SafetySuggestionsType]"></asp:SqlDataSource>
                        <asp:TextBox ID="TextBox1" runat="server" CssClass="text"></asp:TextBox>
                        <br />
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" 
                            ControlToValidate="dropdownlist" 
                            ErrorMessage="Please select a type for your suggestion or choose Others and put a type for it"></asp:RequiredFieldValidator>
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" 
                            ControlToValidate="TextBox1" 
                            ErrorMessage="Please enter a type for your suggestion"></asp:RequiredFieldValidator>
                    </li>
                    <li>
                        <label for="subject">
                        Subject</label>
                        <asp:TextBox ID="txtSubject" runat="server" CssClass="text"></asp:TextBox>
                        <br />
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
                            ControlToValidate="txtSubject" 
                            ErrorMessage="Please enter a subject/title for your suggestion"></asp:RequiredFieldValidator>
                    </li>

                    <%--The following hidden field is for inserting the date--%>
                    <li>
                        <asp:TextBox ID="dateSubmitted" runat="server" CssClass="text" Visible="false"></asp:TextBox>
                        <br />
                    </li>

                    <li>
                        <label for="message">
                        Your Suggestion</label>
                        <asp:TextBox ID="txtSuggestion" runat="server" cols="50" CssClass="textarea" 
                            rows="6" TextMode="MultiLine"></asp:TextBox>
                        <br />
                        <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
                            ControlToValidate="txtSuggestion" ErrorMessage="Please enter your suggestion"></asp:RequiredFieldValidator>
                    </li>
                    <li class="buttons">
                        <asp:ImageButton ID="imageField" runat="server" imageurl="images/Send.gif" 
                            OnClick="btnSubmit_Click" />
                        <%--<input type="image" name="imageField" id="imageField" src="images/Send.gif" />--%>
                    </li>
                </ol>
            </div>

C# コード:

string connString = "Data Source=localhost\\sqlexpress;Initial Catalog=Test;Integrated Security=True";
        string insertCommand = "INSERT INTO Log (Title, DateSubmitted, Description, Username) values(@Title, @DateSubmitted, @Description, @Username)";
        string username = netID;
        using (SqlConnection conn = new SqlConnection(connString))
        {
            conn.Open();
            using (SqlCommand cmd = new SqlCommand(insertCommand, conn))
            {
                cmd.Parameters.Clear(); 
                cmd.Parameters.AddWithValue("@Title", txtSubject.Text);
                cmd.Parameters.AddWithValue("@DateSubmitted", DateTime.Now.ToString());
                cmd.Parameters.AddWithValue("@Description", txtSuggestion.Text);
                cmd.Parameters.AddWithValue("@Username", username);
                cmd.ExecuteNonQuery();
            }
        }

今必要なのは、選択した型の値を挿入することです。その方法は?

4

2 に答える 2

2

挿入クエリで、selectedType のパラメーターをもう 1 つ追加します。

string connString = "Data Source=dha00730-pmtq01\\sqlexpress;Initial Catalog=psspdbTest;Integrated Security=True";
        string insertCommand = "INSERT INTO SafetySuggestionsLog (Title, DateSubmitted, Description, Username, TypeID) values(@Title, @DateSubmitted, @Description, @Username,@TypeID)";
        string username = netID;
        int typeID = Convert.ToInt64(DropDownList.SelectedValue);
        using (SqlConnection conn = new SqlConnection(connString))
        {
            conn.Open();
            using (SqlCommand cmd = new SqlCommand(insertCommand, conn))
            {
                cmd.Parameters.Clear(); 
                cmd.Parameters.AddWithValue("@Title", txtSubject.Text);
                cmd.Parameters.AddWithValue("@DateSubmitted", DateTime.Now.ToString());
                cmd.Parameters.AddWithValue("@Description", txtSuggestion.Text);
                cmd.Parameters.AddWithValue("@Username", username);
                cmd.Parameters.AddWithValue("@TypeID",typeID);    
                cmd.ExecuteNonQuery();
            }
        }
于 2012-11-19T09:41:38.917 に答える
0

解決策は、@Rohit Vyas が彼の解決策で言及したものと同じですが、次のコード行を変更しただけです。

cmd.Parameters.AddWithValue("@TypeID",typeID); 

次のように:

cmd.Parameters.AddWithValue("@TypeID",DropDownList.SelectedIndex);    
于 2012-11-19T10:18:12.483 に答える