如何在ASP.NET中从sql查询返回响应?
我正在尝试创建一个简单的translator API,它以用户提供的英语单词作为参数,并从MySQL数据库返回意大利语对应项。这是我的VB.NET控制器如何在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
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