标签: sqldatasource

如何设置ASP.NET SQL数据源以接受TVP

在代码隐藏中,您将TVP添加为存储过程的SqlDbType.Structured但这在ASP.NET SqlDataSource控件中不存在.

我已将我的Datatables存储在会话变量中(不要担心它们很小!)我需要将它们作为参数传递给SqlDataSource(它有许多数据绑定对象)

我将Datasource指向了session变量,但在转换为表类型时失败了.

编辑:假设我将Session变量从等式中取出(因为,实际上,它完全相切)

必须有一种方法可以将DBType.Structured附加到SQLDataSource.我的列表视图是适当的数据绑定,但它们附加的商店程序必须采用TVP

我无法相信没有办法为SQLDataSource发送TVP参数?我有什么选择?

EDIT2:我一直在寻找为SqlDataSource创建一个自定义参数,但在我看来,它的"eval"方法对结构化数据类型不满意

EDIT3:我的唯一选择就是为我的数据绑定控件完成代码隐藏的所有工作.我添加了赏金以防其他任何人有一个优雅的解决方案.

编辑方式4:或许,有一种方法可以将表作为对象传递给存储过程,然后让SQL Server将其转换为TVP吗?

sql asp.net sqldatasource table-valued-parameters

9
推荐指数
1
解决办法
2626
查看次数

asp:QueryStringParameter和空查询字符串参数

我正在asp:GridView使用显示客户端请求asp:SqlDataSource.我想限制客户显示的信息:

View.aspx必须显示所有内容,View.aspx?client=1必须仅显示来自客户端ID#1的请求.

所以我<asp:QueryStringParameter Name="client" QueryStringField="client" />用于查询"EXEC getRequests @client".

指定某个客户端时,一切正常.但不要 - 如果不是.

我使用SSMS测试了我的SP - 它在两种情况下都正常工作 - 指定参数时和不显示参数时(NULL显式传递).

我做了什么?

.net sql-server asp.net sqldatasource querystringparameter

8
推荐指数
1
解决办法
6798
查看次数

如何在GridView EditTemplate中设置DropDownList的SelectedValue

我试图做到正如前面问道.我找到的唯一区别是上面代码中包含的附加List项.

我试图使用,AppendDataBoundItems=true但它仍然无法正常工作.我还想将其默认值设置为itemtemplate标签中显示的值,即DropDownList,SelectedValue='<%# Eval("DepartmentName") %>'但是我在下拉列表中无法使用该属性.可能是什么原因.??

<EditItemTemplate>
    <asp:DropDownList ID="ddlDepartment_Edit" runat="server" 
        DataSourceID="dsDepartment_Edit" DataTextField="DepartmentName" 
        DataValueField="PK_DepartmentId">
    </asp:DropDownList>
    <asp:SqlDataSource ID="dsDepartment_Edit" runat="server" 
        ConnectionString="<%$ ConnectionStrings:BlackHillsConnect %>"  
        ProviderName="System.Data.SqlClient" SelectCommand="sp_GetDepartmentDropDown" 
        SelectCommandType="StoredProcedure">
    </asp:SqlDataSource>                                 
</EditItemTemplate>
<ItemTemplate>
    <asp:Label ID="lblDepartmentName" runat="server" Text='<%# Eval("DepartmentName") %>' >
    </asp:Label>
</ItemTemplate>   
Run Code Online (Sandbox Code Playgroud)

我在用 GridView

c# asp.net data-binding sqldatasource

8
推荐指数
1
解决办法
6万
查看次数

数据集的目的是什么?

当我们可以使用简单的SQL语句直接与数据库通信时,我想了解数据集的用途.另外,哪种方式更好?更新数据集中的数据,然后立即将它们传输到数据库或直接更新数据库?

c# sqldatasource dataset winforms

7
推荐指数
2
解决办法
2729
查看次数

如何通过sqldatasource计算获取的行数

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
    Dim LoginChecker As New SqlDataSource()
    LoginChecker.ConnectionString = ConfigurationManager.ConnectionStrings("A1ConnectionString1").ToString()
    LoginChecker.SelectCommandType = SqlDataSourceCommandType.Text
    LoginChecker.SelectCommand = "SELECT username FROM A1login WHERE username=@username AND password=@password"
    LoginChecker.SelectParameters.Add("username", username.Text)
    LoginChecker.SelectParameters.Add("password", password.Text)
    Dim rowsAffected As Integer = 0
    Try
        rowsAffected = LoginChecker.<what i have to write here>
    Catch ex As Exception
        'Server.Transfer("LoginSucessful.aspx")
    Finally
        LoginChecker = Nothing
    End Try
    username.Text = rowsAffected
    ' If rowsAffected = 1 Then
    'Server.Transfer("A1success.aspx")
    '   Else
    'Server.Transfer("A1failure.aspx")
    '  End If

End …
Run Code Online (Sandbox Code Playgroud)

sql vb.net asp.net sqldatasource

6
推荐指数
1
解决办法
8935
查看次数

我可以获取从 SqlDataSource 执行的查询吗?

我在我的 SqlDataSource 上有一个针对我的 SelectCommand 的 sql 查询。它看起来像下面这样:

SELECT * FROM Books WHERE BookID = @BookID
Run Code Online (Sandbox Code Playgroud)

TextBox 使用 Asp:ControlParameter 提供 @BookID 参数。

当我在单步执行代码时查看 SelectCommand 时,我看到:

SELECT * FROM Books WHERE BookID = @BookID
Run Code Online (Sandbox Code Playgroud)

我真正想看到的是,如果这个人在 TextBox 中输入 3,我想看到

SELECT * FROM Books WHERE BookID = 3
Run Code Online (Sandbox Code Playgroud)

我不知道如何访问上述内容?

c# asp.net sqldatasource

5
推荐指数
1
解决办法
4517
查看次数

Sql 相当于 UInt16

我知道 Int16 的 Sql 等价物是 SqlInt16。

但是,UInt16、UInt32 和 Uint64 的 Sql 等价物是什么?

c# sqldatasource sqldatatypes

5
推荐指数
1
解决办法
1629
查看次数

如何检查SqlDataSource是否返回了数据?

我有一个asp.net页面,其中有几个已SqlDataSources定义,将数据提供给一些图表.图形产品不能正常处理"无数据",并抛出异常.我想要这样处理这种情况 - 所以我需要SqlDataSource在渲染图形之前检查返回的数据(如果没有,只需发布​​一条消息说"无数据"或其他东西).

有没有一种简单的方法可以检查数据源是否返回数据,并且如果/然后没有一堆代码,那么这样做?

vb.net asp.net sqldatasource

5
推荐指数
1
解决办法
1万
查看次数

访问检索到的数据

我一直试图找到这个问题的答案好几天,我发现很难相信这不可能做到.

我想要在DataSet/DataTable构建页面时SqlDataSource.SelectASP.NET运行时自动调用方法时构建.

我知道我可以在代码后面运行它,但这使得第二次访问数据库,我真的想避免这种情况.我遇到的每个例子都告诉你在后面的代码中执行Select方法.

有没有办法访问已经检索的数据?

c# asp.net ado.net sqldatasource

5
推荐指数
1
解决办法
83
查看次数

“DropDownList1”的 SelectedValue 无效,因为它不存在于项目列表中。参数名称:值

我正在使用TemplateFieldin从数据库GridView实现edit/delete

我正在使用控件查询数据SqlDataSource

当我从页面编辑表格时,出现以下错误:

“DropDownList1”的 SelectedValue 无效,因为它不存在于项目列表中。参数名称:值

这是因为 dB 中的数据与任何国家/DropDownList地区名称都不匹配。

我从这个问题理解了问题(那里没有给出解决方案!)

我认为当我将数据插入 dB 时,它会自动向数据添加冗余空格(例如国家/地区名称)

因此,一种解决方案是从字符串中删除空格(修剪),以便值在其中一项中匹配DropDownList

因为<asp:DropDownList ID="DropDownList1" runat="server" SelectedValue='<%# Eval("Country")%>'
与 DropDownList 的任何列表项都不匹配

<asp:DropDownList ID="DropDownList1" runat="server"  SelectedValue='<%# Eval("Country").ToString().Trim()%>'>
Run Code Online (Sandbox Code Playgroud)

与 DropDownList 的列表项匹配。

现在我想将数据更新回数据库,但存储的不是国家/地区名称空值。 (我认为这是 的限制Eval()

Bind() 我可以使用但Bind不支持将数据更新回 dB ToString().Trim(),因此我无法修剪字符串以匹配 DropDownList 中的一项。

如何将数据更新回 dB?

我的原始代码

c# asp.net data-binding gridview sqldatasource

5
推荐指数
1
解决办法
3万
查看次数