2013-10-24 65 views
-3

我有以下的文本框和按鈕:分配文本框輸入到可變

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

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

文本框爲「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。然而,我遇到麻煩的是修改代碼,以便抓取我輸入到「輸入」文本框(當前爲123456)的ID,然後將其設置爲上述代碼中的ID而不是「111111」。

+0

我認爲http://stackoverflow.com/questions/2377506/pass-array-parameter-in-sqlcommand是一樣的。 – nycdan

回答

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功能是背後

+0

我至少會解析'TextBox'來確保它值得做db調用。 – Romoku

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

謝謝你教給我'TryParse()'方法!這是我今天的新事物。 –

+1

@CodeswithHammer感謝你,你的話比30名代表更有價值。很高興有幫助。 – Steve