我有以下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”。
答案 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
函数位于代码之后