数据尚未插入数据库(使用SqlDataSource)

时间:2016-01-08 04:05:15

标签: c# asp.net sql-server database

我无法将在表单中输入的值传递到ASP.NET中的数据库中。我有两个DropDownList控件,两个TextBox控件和一个带有FILE输入类型的html控件。这是我的代码:

这是我的设计页面:

<asp:Content ID="ContentCitizenProfile" runat="server" ContentPlaceHolderID="cpdCitizenProfile">

<asp:ScriptManager ID="smDDL" runat="server"></asp:ScriptManager>
<asp:UpdatePanel ID="upDDL" runat="server">
    <ContentTemplate>
     <div class="form-inline" style="margin-bottom:25px;">
<asp:Label ID="lblCType" runat="server" Text="Complaint Type:"/>  
 <asp:DropDownList ID="ddlCType" runat="server" CssClass="form-control" DataSourceID="SqlDataSource1" DataTextField="Comp_Type" DataValueField="Type_ID" AutoPostBack="True" ondatabound="DDLCTypeDataBound" style="margin-left:79px" >
</asp:DropDownList>

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ComplaintWebsiteConnectionString2 %>" SelectCommand="SELECT * FROM [Complaint_Type]"></asp:SqlDataSource>
        <asp:RequiredFieldValidator ID="RfvDDLCompType" runat="server" ErrorMessage="Please Select Complaint Type" ControlToValidate="ddlCType" ForeColor="Red">*</asp:RequiredFieldValidator>
     </div>


<div class="form-inline" style="margin-bottom:25px;">
    <asp:Label ID="lblSubType" runat="server" Text="Complaint Sub Type:"/>
<asp:DropDownList ID="ddlSubType" runat="server" CssClass="form-control" DataSourceID="SqlDataSource2" DataTextField="Comp_SubType" DataValueField="Type_ID" ondatabound="DDLSubTypeDataBound" style="margin-left:50px">
</asp:DropDownList>
    <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:ComplaintWebsiteConnectionString2 %>" SelectCommand="SELECT * FROM [Complaint_SubType] WHERE ([Type_ID] = @Type_ID2)">
        <SelectParameters>
            <asp:ControlParameter ControlID="ddlCType" Name="Type_ID2" PropertyName="SelectedValue" Type="Int32" />
        </SelectParameters>
    </asp:SqlDataSource>
    <asp:RequiredFieldValidator ID="rfvDDlSubType" runat="server" ErrorMessage="Please Select Complaint Sub Type" ControlToValidate="ddlSubType" ForeColor="Red">*</asp:RequiredFieldValidator>
</div>
  </ContentTemplate>
</asp:UpdatePanel>       

<div id="demo" class="form-inline" style="margin-bottom:25px;">
    <asp:Label ID="lblLocation" runat="server" Text="Location:"/>
    <asp:TextBox ID="txtLoc" CssClass="form-control" runat="server" style="margin-left:120px"></asp:TextBox>&nbsp;
    <button ID="lblFind" runat="server" class="btn btn-info btn-xs">Find location on map</button>
    <br/><br />
    <iframe src="CompLocation.html" height="300" width="600"></iframe>
    </div>


<div class="form-inline" style="margin-bottom:25px;">
    <asp:Label ID="lblDesc" runat="server" Text="Post Description:"></asp:Label>
    <asp:TextBox ID="txtDesc" CssClass="form-control" runat="server" TextMode="MultiLine" style="margin-left:70px"></asp:TextBox>
</div>

<div class="form-inline" style="margin-bottom:25px;">
    <asp:Label ID="lblFileUpload" runat="server" Text="Upload Image:" style="margin-right:86px"/>
    <input id="UpldFile" type="file" class="filestyle btn-info" data-iconName="glyphicon glyphicon-inbox" style="margin-right:20px"/>
  <img id="imgPreview" src="#" alt="" style="width:150px;height:150px" class="img-thumbnail img-responsive">

<div class="form-inline" style="margin-bottom:50px;">
<button id="btnReportComp" class="btn btn-success" onserverclick="btnPostComp">Report Complaint</button> 
<button id="btnReset" class="btn btn-danger" onserverclick="btnReset" style="margin-left:20px">Reset</button>
</div>
<asp:SqlDataSource ID="SqlDataSourceReport" runat="server" ConnectionString="<%$ ConnectionStrings:ComplaintWebsiteConnectionString %>" InsertCommand="INSERT INTO Citizen_Complaints(Comp_Type, Comp_SubType, Location, Description, Image) VALUES (@ctype,@subtype,@loc,@desc,@img)" SelectCommand="SELECT * FROM [Citizen_Complaints]">
    <InsertParameters>
        <asp:ControlParameter ControlID="ddlCType" Name="ctype" PropertyName="SelectedValue" />
        <asp:ControlParameter ControlID="ddlSubType" Name="subtype" PropertyName="SelectedValue" />
        <asp:ControlParameter ControlID="txtLoc" Name="loc" PropertyName="Text" />
        <asp:ControlParameter ControlID="txtDesc" Name="desc" PropertyName="Text" />
        <asp:FormParameter FormField="UpldFile" Name="img" />
    </InsertParameters>
</asp:SqlDataSource>

.cs页面:

protected void btnReportComp(object Sender, EventArgs e)
    {
        SqlDataSourceReport.Insert();
    }

2 个答案:

答案 0 :(得分:1)

将InsertCommand更改为以下内容:

INSERT INTO Citizen_Complaints(Comp_Type, Comp_SubType, Location, Description, Image) VALUES (@ctype,@subtype,@loc,@desc,@img)

答案 1 :(得分:1)

删除sqldatasource并添加到按钮,然后单击方法:

protected void btnSave_Click(object Sender, EventArgs e)
{
    SqlConnection con = new SqlConnection(Utils.Connection);
    SqlCommand cmd = new SqlCommand("citizen_complaints_i", con);
    cmd.CommandType = CommandType.StoredProcedure;
    cmd.Parameters.Add("@TYPE", SqlDbType.VarChar).Value = ddlCType.SelectedValue;
    cmd.Parameters.Add("@SUBTYPE", SqlDbType.VarChar).Value = ddlSubType.SelectedValue;
    cmd.Parameters.Add("@LOCATION", SqlDbType.VarChar).Value = txtLoc.Text;
    cmd.Parameters.Add("@DESCRIPTION", SqlDbType.VarChar).Value = txtDesc.Text;
    cmd.Parameters.Add("@IMAGE", SqlDbType.VarChar).Value = Utils.file_upload(fuImage);

    try
    {
        con.Open();
        cmd.ExecuteNonQuery();
    }
    catch (Exception ex)
    {
        //...
    }
    finally
    {
        con.Close();
    }
}