我想在 microsoft bot 框架 c# 中有一個機器人,如果你發送名字,它會發回一個人最喜歡的顏色值。數據存儲在 azure 上的數據庫中。連接很好,問題是一旦我嘗試實現任何讀取器對象,它就會給出代碼 500 錯誤。例子:用戶:賬單機器人:比爾最喜歡的顏色是紅色!你想知道別人最喜歡的顏色嗎?因此,該邏輯應采用 bill 的用戶輸入,將其用作 sql 語句中的輸入參數,然后讀取返回值并通過機器人返回給用戶。我的 MessagesController.cs 類與機器人模板沒有變化,我嘗試將所有邏輯放在下面的 RootDialog.cs 中:using System;using System.Threading.Tasks;using Microsoft.Bot.Builder.Dialogs;using Microsoft.Bot.Connector;using System.Data.SqlClient;namespace ColourBot.Dialogs{[Serializable]public class RootDialog : IDialog<object>{ public Task StartAsync(IDialogContext context) { context.Wait(MessageReceivedAsync); return Task.CompletedTask; } private async Task MessageReceivedAsync(IDialogContext context, IAwaitable<object> result) { var activity = await result as Activity; string result10; var cb = new SqlConnectionStringBuilder(); cb.DataSource = "my_server.database.windows.net"; cb.UserID = "user_id"; cb.Password = "pass_word"; cb.InitialCatalog = "ColourDB"; using (var connection = new SqlConnection(cb.ConnectionString)) { connection.Open(); SqlCommand command = new SqlCommand("SELECT Colour FROM People Where Name=ed", connection); result10 = Submit_1_Tsql_SelectEmployees(connection); await context.PostAsync( $"The name you sent was {activity.Text}, their favourite colour is {result10}!"); context.Wait(MessageReceivedAsync); string Build_1_Tsql_SelectEmployees() { return $@"SELECT Colour FROM People Where Name={activity.Text};"; }
- 1 回答
- 0 關注
- 162 瀏覽
添加回答
舉報
0/150
提交
取消