asp.net - 服务器标记的格式不正确。查询字符串和数据绑定(bind)

标签 asp.net sql vb.net data-binding connection-string

我进行了大量研究,但没有找到解决此问题的方法。

<form id="form1" runat="server">
<div>

    <asp:GridView ID="GridView1" runat="server" DataSourceID="SqlDataSource1" EnableModelValidation="True">
    </asp:GridView>
    <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="(SELECT [TID], [CaseID]
  ,[dtTimeStamp]
  ,[Site]
  ,[Dept]
  ,[LocationDetail]
  ,[ContactPerson]
  ,[Phone]
  ,[contactEmail]
  ,[ProblemDesc]
FROM [hispcsupport_kb].[dbo].[tblCase] 
WHERE CaseID=" Request.QueryString("CaseID"))">

    </asp:SqlDataSource>

</div>
</form>

从错误来看,这是导致错误的行。

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="(SELECT [TID], [CaseID]

有什么帮助吗?

最佳答案

更改 SelectCommand 以使用参数:Using Parameters with the SqlDataSource Control ,这将具有消除 SQL 注入(inject)攻击机会的额外好处。末尾的“社区添加”部分展示了如何添加带有值的参数。

所以...

<asp:SqlDataSource ID="SqlDataSource1" runat="server"
    ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
    SelectCommand="(SELECT [TID], [CaseID]
      ,[dtTimeStamp]
      ,[Site]
      ,[Dept]
      ,[LocationDetail]
      ,[ContactPerson]
      ,[Phone]
      ,[contactEmail]
      ,[ProblemDesc]
    FROM [hispcsupport_kb].[dbo].[tblCase] 
    WHERE CaseID = @CaseID">
</asp:SqlDataSource>

并在代码隐藏的适当位置:

SqlDataSource1.SelectParameters.Add("@CaseID", DbType.NVarChar, Request.QueryString("CaseID")) 

(如果需要,请更改 DbType)。

关于asp.net - 服务器标记的格式不正确。查询字符串和数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24437966/

相关文章:

asp.net - 如何修复 func 在命名空间中不明确 'system' 编译器错误

c++ - 为什么在 VB.NET 中使用 DeviceIoControl 的文件枚举比在 C++ 中更快?

javascript - 回发时 HTML 输入值清除

ASP.NET Web API Azure Blob 存储非结构化

asp.net - 在 ASP.NET 网络表单中处理 JSON 响应

sql - 条件连接 SQL Server

database - 相关对象应该分组在一个表中,还是多个表中?

javascript - 循环遍历 ASP.Net 表

java - 将 xml 模式导入 postgres 以自动创建一个表,然后用 xml 文件填充它?

php - 如何创建 SQL 触发器以根据新插入行中的值插入新行?