我有这个SQL查询
Dim cmd As OleDbCommand = New OleDbCommand("SELECT * FROM GPS1_MAP where sta_id=" & TreeView1.SelectedNode.Value, con)
,树视图代码在这里
<asp:TreeView ID="TreeView1" runat="server" AutoGenerateDataBindings="False" Font-Names="Arial"
Font-Size="Smaller" ForeColor="#C04000">
<Nodes>
<asp:TreeNode Text="Paties">
<asp:TreeNode Text="CHENAB COTTON MILLS" Value="CHENAB COTTON MILLS"></asp:TreeNode>
<asp:TreeNode Text="AJMER COTTON GINNERS" Value="AJMER COTTON GINNERS"></asp:TreeNode>
</asp:TreeNode>
</Nodes>
</asp:TreeView>
但是它没有使用树的选择值可能是什么问题?
答案 0 :(得分:1)
您的选择节点的Value
(例如<asp:TreeNode Text="CHENAB COTTON MILLS" Value="CHENAB COTTON MILLS"></asp:TreeNode>
)是字符串CHENAB COTTON MILLS
。
因此您的SQL语句将变为:
SELECT * FROM GPS1_MAP where sta_id=CHENAB COTTON MILLS
请注意,CHENAB COTTON MILLS
周围没有引号。因此,您的陈述无效。
您可以在值周围添加引号,例如:
Dim cmd As OleDbCommand = New OleDbCommand("SELECT * FROM GPS1_MAP where sta_id='" & TreeView1.SelectedNode.Value & "'", con)
或者使用named parameters,这是一个更好的解决方案(因为它可以防止SQL注入攻击)。