[英]Stored Procedure from SQL Server is not filling ASP.Net dropdown using VB.Net coding
[英]Using VB.net code to take Text from a TextBox and use for an SQL Stored Procedure
我有一个有趣的情况,我试图将日期(格式为yyyy-MM-dd
的字符串[ie 2013-08-01
])传递给asp.net网页中的SQL存储过程。 我已经设置了存储过程,但是现在我必须将日期作为参数传递。 我需要的日期位于单独的SQL表中,因此我创建了一个TextBox
(我们将其称为endDATE
),该TextBox
提供了我需要的日期,并且可以隐藏该日期以使其在网页上不可见。
问题在于TextBox
包含在DetailsView
,因此对于存储过程,我似乎无法访问它。
我想我应该尝试使用VB代码将字符串从TextBox
传递到存储过程。 我该怎么做呢?
TextBox
代码:
<asp:DetailsView ID="LatestDate" DataSourceID="SqlDataSource6" runat="server" AutoGenerateRows="false"
AutoGenerateColumns="False" BorderStyle="None" GridLines="None">
<Fields>
<asp:BoundField DataField="MostRecent" HeaderText="" ReadOnly="True" ShowHeader="False"
DataFormatString="Daily: {0:M/d/yyyy}" ItemStyle-CssClass="boldbig" />
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox runat="server" ID="endDATE" Visible="false" Text='<%# Eval("MostRecent","{0:yyyy-MM-dd}") %>' />
</ItemTemplate>
</asp:TemplateField>
</Fields>
</asp:DetailsView>
存储过程的代码[ date1
是我要提供的参数]:
<asp:SqlDataSource ID="SqlDataSource7" runat="server"
ConnectionString="<%$ConnectionStrings:ConnectionString3 %>"
ProviderName="<%$ ConnectionStrings:ConnectionString3.ProviderName %>"
SelectCommand="dbo.TheMgr_Total"
SelectCommandType="StoredProcedure">
<SelectParameters>
<asp:QueryStringParameter name="MgrName" DbType="String" QueryStringField="id" />
<asp:Parameter Name="date1" DbType="String" DefaultValue="2013-08-08" />
</SelectParameters>
</asp:SqlDataSource>
更新:Steve的解决方案对我来说看起来不错,但我始终无法使其正常运行。 我的项目改变了方向,所以我不再致力于这个特殊的问题。
将参数传递给存储过程是一项非常常见的任务,并且有据可查
Dim dateValue as DateTime
dateValue = GetDateFromDetailsView()
Using cn As SqlClient.SqlConnection(conString)
cn.Open()
Using cmd AS SqlClient.SqlCommand(cn)
cmd.CommandText = "storedProcName"
cmd.CommandType = CommandType.StoredProcedure
cmd.Parameters.AddWithValue("@theDate", dateValue)
cmd.ExecuteNonQuery()
End Using
End Using
当然,您需要用其实际值替换storedProcName
和@theDate
参数。唯一的问题是检索类型为DateTime的变量dateValue。 在这里,我需要再次假设很多有关您的页面结构的信息,但也许GetDateFromDetailsView可以写为
public Function GetDateFromDetailsView() As String
Dim txtHiddenText = detailsViewName.FindControl("txtHiddenText")
return txtHiddenText.Text
End Function
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.