如何在ASP.NET中从sql查询返回响应?

如何在ASP.NET中从sql查询返回响应?,asp.net,vb.net,asp.net-web-api,Asp.net,Vb.net,Asp.net Web Api,我正在尝试创建一个简单的translator API,它以用户提供的英语单词作为参数,并从MySQL数据库返回意大利语对应项。这是我的VB.NET控制器 Public Function GetValue(EnglishWord As String) Dim connStr As String = "server=mysql.mydatabase.com;user=myuser;database=mydatabase;port=3306;password=mypasswo

我正在尝试创建一个简单的translator API,它以用户提供的英语单词作为参数,并从MySQL数据库返回意大利语对应项。这是我的VB.NET控制器

Public Function GetValue(EnglishWord As String)
        Dim connStr As String = "server=mysql.mydatabase.com;user=myuser;database=mydatabase;port=3306;password=mypassword;"
        Dim conn As New MySqlConnection(connStr)
        conn.Open()
        Dim command = New MySqlCommand("SELECT ItalianWord FROM Book WHERE EnglishWord=(" + EnglishWord + ")", conn)
        Dim reader = command.ExecuteReader()
        Return reader.GetValue(0)
        Console.WriteLine("Done.")

    End Function
然而,返回值非常奇怪:


我只需要一个字符串值,而不是
value1
value2
。我做错了什么?非常感谢您的建议。

使用
使用…结束使用
以确保您的数据库对象已被处置

之前不要打开连接。执行…

vb.net中的函数需要
数据类型

Console.WriteLine
将永远不会执行,因为您将函数保留在上一行的
Return

始终使用参数以避免Sql注入。我不得不猜测
英语单词的数据类型。检查数据库中的正确类型

我假设每个英语单词只有一个翻译单词

Public Function GetValue(EnglishWord As String) As String
    Dim connStr As String = "server=mysql.mydatabase.com;user=myuser;database=mydatabase;port=3306;password=mypassword;"
    Dim TranslatedWord As Object
    Using conn As New MySqlConnection(connStr),
            command As New MySqlCommand("SELECT ItalianWord FROM Book WHERE EnglishWord=@EnglishWord;", conn)
        command.Parameters.Add("@EnglishWord", MySqlDbType.VarChar).Value = EnglishWord
        con.Open()
        TranslatedWord = command.ExecuteScalar
    End Using
    If TranslatedWord Is Nothing Then
        Return "No word found."
    Else
        Return TranslatedWord.ToString
    End If
End Function