我试图通过在sql命令中传递不同的查询来在三个按钮单击事件上显示相同的网格。
<table style="width:100%;" cellspacing="2" class="Text">
<tr>
<td align="left" colspan ="2">
<asp:Button ID="btnreport1" runat="server"
Text="Report1" Width="104px"
OnClick ="btnreport1_Click1"/>
</td>
</tr>
</table>
<tr>
<td>
<asp:GridView ID="GridView1" runat="server"
AutoGenerateColumns="True" AllowPaging="True"
AllowSorting="True">
</asp:GridView>
VB代码
Protected Sub btnreport1_Click1(sender As Object,
e As EventArgs) Handles btnreport1.Click
Using conn1 As New SqlConnection(ConfigurationManager.ConnectionStrings(
"TERAMSConnectionString").ConnectionString)
conn1.Open()
Dim cmd2 As SqlCommand =
New SqlCommand("select * from AssetsHardware_Master ,
Desktop where Serial_no !=SerialNo", conn1)
Dim dr As SqlDataReader = cmd2.ExecuteReader
Dim dt As DataTable = New DataTable
dt.Load(dr)
GridView1.DataSource = dt
GridView1.DataBind()
End Using
End Sub
答案 0 :(得分:2)
这里你不能调用绑定网格视图的方法
在设计视图中OnClick ="btnreport1_Click1"
并在代码背后Button1_Click()
这就是为什么它不会在网格视图中显示结果
答案 1 :(得分:0)
WHERE
- 条款中的条件不正确:
where Serial_no != SerialNo
这至少会返回任何内容,因为没有SerialNo本身!=
(它与where 1=2
相同)。
我假设你想使用参数化查询:
Dim cmd2 As SqlCommand = New SqlCommand("select * from AssetsHardware_Master ,Desktop where Serial_no != @Serial_no", conn1)
cmd2.Parameters.AddWithValue("@Serial_no", SerialNo)
这里SerialNo是一个变量,如果它是一个静态字符串SerialNo
:
cmd2.Parameters.AddWithValue("@Serial_no", "SerialNo") ' presuming varchar column
答案 2 :(得分:0)
copypaste错误?
你的按钮:
<asp:Button ID="btnreport1" runat="server" Text="Report1" Width="104px"
OnClick ="btnreport1_Click1"/>
你的方法声明:
Protected Sub Button1_Click(sender As Object, e As EventArgs) _
Handles Button1.Click
你的方法永远不会被使用,试试这个:
<asp:Button ID="Button1" runat="server" Text="Report1" Width="104px"/>
或者这个:
Protected Sub btnreport1_Click1(sender As Object, e As EventArgs)
答案 3 :(得分:0)
我在您的代码示例中发现了一个问题。您按钮控件ID是“btnreport1”,但您的按钮单击事件处理程序处理名为“Button1.Click”的不存在的控件ID。为了使事件处理程序能够处理按钮中的click事件,必须将其handle子句更改为:
Protected Sub Button1_Click(sender As Object, e As EventArgs) _
Handles btnreport1.Click
您还可以创建一个处理许多按钮点击的处理程序......
Protected Sub Button1_Click(sender As Object, e As EventArgs) _
Handles btnreport1.Click, _
Handles btnreport2.Click, _
Handles btnreport3.Click, _
Handles btnreport4.Click
关于称为“AutoEventWireup”的功能...在每个ASPX页面的顶部,在Page Declaration中,有一个名为“AutoEventWireup”的属性。这设置为true或false。使用true设置时,ASP.NET会自动将按钮和其他控件连接到事件处理程序。例如,名为“MyButton”click事件的控件将自动绑定到事件处理程序名称“MyButton_Click”。使用false设置时,必须使用“... Handles MyButton.Click”子句向事件处理程序显式“连接”按钮。
无论您是否使用AutoEventWireup,您的代码示例将永远不会起作用,因为控件ID和句柄声明不匹配。