我无法将在表单中输入的值传递到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>
<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();
}
答案 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();
}
}