2014-03-12 58 views
4

很抱歉,如果這個問題很愚蠢,但我沒有其他辦法可以看到大局。 我有1個文本框,1個標籤和數據庫有兩列(代碼名和說明),通過在文本框中輸入代碼名我想在標籤中獲得相應的描述。Web表單 - sql和檢索數據 - 有更簡單的解決方案

使用Excel和VBA可以使用幾行代碼完成。可悲的是我不能使用Excel,但必須選擇Web界面,因爲電腦和Office的價格很低。爲什麼在ASP.NET中使用所有常規聲明和sqlservers和sqlconnections這個簡單的任務如此複雜。

有沒有更簡單的方法來做到這一點?

順便說一句。我試着去適應許多不同的事情,我在網上找到這最後一個看起來很有希望,但它不工作:

Protected Sub TextBox2_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged 
    Using sqlconn As New SqlConnection("Data Source=.\sqlexpress;Initial Catalog=KLIJENTI;Integrated Security=True"), _ 
      sqlcmd As New SqlCommand("Select From Baza Where SIFRE = @SIFRE", sqlconn) 

     sqlcmd.Parameters.Add("@SIFRE", SqlDbType.VarChar, 50).Value = TextBox2.Text 

     sqlconn.Open() 


     'Label1.Text = CString(sqlcmd.ExecuteScalar()) 'CString is not declared 
     Label1.Text = sqlcmd.ExecuteScalar() 


    End Using 
End Sub 

哪裏巴扎是表名,

SIFRE是那個代號將在文本框

輸入並NAZIV是對應於SIFRE描述,應在標籤顯示

+0

它在.NET中更復雜,因爲.NET不是Access。這是一個通用的工具集。 –

回答

4

正確的形式是

Protected Sub TextBox2_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox2.TextChanged 
    Using sqlconn = New SqlConnection("Data Source=.\sqlexpress;Initial Catalog=KLIJENTI;Integrated Security=True") 
    Using sqlcmd = New SqlCommand("Select NAZIV From Baza Where SIFRE = @SIFRE", sqlconn) 
     sqlcmd.Parameters.AddWithValue("@SIFRE", TextBox2.Text) 
     sqlconn.Open() 
     Dim result = sqlcmd.ExecuteScalar() 
     if result IsNot Nothing Then 
      Label1.Text = result.ToString 
     End If 
    End Using 
    End Using 
End Sub 

SELECT sql子句後面是要檢索的列的列表。 (添加了NAZIV)
另外你應該考慮你的查詢找不到參數@Sifre的值,在這種情況下,ExecuteScalar的結果是Nothing。

+0

史蒂夫,非常感謝你! – Jovica

相關問題