将TextBox输入分配给变量

时间:2013-10-24 14:16:56

标签: c# asp.net visual-studio visual-studio-2012

我有以下TextBox和Button:

<asp:TextBox ID="input" runat="server" Height="10px" Width="60px">123456</asp:TextBox>

<asp:Button ID="Button1" runat="server" OnClick="ViewButton_Click" Text="Button" />

TextBox的默认值为“123456”。然后单击按钮应触发以下操作:

public byte[] GetImageData(int ID)
    {

     ....

        SqlCommand command = new SqlCommand("select FileImage from TestServ.dbo.Tickets WHERE (FileType = 'PDF' AND ID = 111111)", connection);

     ....

    }

目前,该ID被手动设置为“111111”,用于从与输入的ID对应的服务器中获取PDF。然而,我遇到的问题是修改代码,以便它抓取我输入“输入”TextBox(目前为123456)的ID,然后将其设置为上述代码中的ID,而不是“111111”。

2 个答案:

答案 0 :(得分:4)

您可以使用TryParse方法尝试将输入文本框的内容转换为整数,然后调用GetImageData方法传递转换后的值。

当然,在GetImageData中,您使用参数化查询将ID作为参数传递给查询数据库的框架代码

public byte[] GetImageData(int ID)
{

    string cmdText = "select FileImage from TestServ.dbo.Tickets " + 
                     "WHERE (FileType = 'PDF' AND ID = @id)";
    SqlCommand command = new SqlCommand(cmdText, connection);
    command.Parameters.AddWithValue("@id", ID);

    ....

}

调用代码.....

int ID;
if(Int32.TryParse(input.Text, out ID))
    byte[] result = GetImageData(ID);

else

  .... show an error ....

答案 1 :(得分:1)

您传递使用参数化查询,如

SqlCommand command = new SqlCommand("select FileImage from TestServ.dbo.Tickets WHERE (FileType = 'PDF' AND ID = @ID)", connection);
command.Parameters.AddWithValue("@ID", input.Text);

注意:假设GetImageData函数位于代码之后