1

我试图通过在 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
4

4 回答 4

2

在这里你不能调用绑定网格视图的方法

在设计视图中OnClick ="btnreport1_Click1"

在后面的代码中Button1_Click()

这就是为什么它不会在网格视图中显示结果

于 2013-10-31T09:43:51.887 回答
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
于 2013-10-31T09:40:26.683 回答
0

复制粘贴错误?

你的按钮:

<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)
于 2013-10-31T09:45:24.047 回答
0

我在您的代码示例中发现了一个问题。您的 Button 控件 ID 是“btnreport1”,但您的按钮单击事件处理程序处理名为“Button1.Click”的不存在的控件 ID。为了让您的事件处理程序处理来自您的按钮的单击事件,它的句柄子句必须更改为:


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 页面的顶部,在页面声明中,都有一个名为“AutoEventWireup”的属性。这设置为真或假。使用真实设置时,ASP.NET 自动将按钮和其他控件连接到事件处理程序。例如,名为“MyButton”的控件单击事件将自动绑定到名为“MyButton_Click”的事件处理程序。使用 false 设置时,您必须使用“... Handles MyButton.Click”子句将按钮显式“连接”到事件处理程序。

无论您是否使用 AutoEventWireup,您的代码示例都不会起作用,因为控件 ID 和句柄声明不匹配。

于 2013-10-31T10:03:48.177 回答