繁体   English   中英

使用VB.net代码从TextBox中获取文本并用于SQL存储过程

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM