我需要从用户那里收集一些数据,通过使用microsoft bot框架并将这些数据存储在Azure数据库中的bot?任何人都可以帮助正确的代码示例和链接?提前谢谢。
要求 :需要向特定用户询问他的nsme,电子邮件地址和电话号码,并将其存储在数据库中。
答案 0 :(得分:0)
只需要向特定用户询问他的nsme,电子邮件地址和电话号码,并将其存储在数据库中
要达到此要求,您可以参考以下示例代码来收集用户信息。
[Serializable]
public class RootDialog : IDialog<object>
{
string name;
string email;
string phone;
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;
if (activity.Text.ToLower().Contains("ok"))
{
PromptDialog.Text(
context: context,
resume: ResumeGetName,
prompt: "Please share your name",
retry: "Please try again."
);
}
else
{
context.Done(this);
}
//context.Wait(MessageReceivedAsync);
}
public async Task ResumeGetName(IDialogContext context, IAwaitable<string> Username)
{
string uname = await Username;
name = uname;
PromptDialog.Text(
context: context,
resume: ResumeGetEmail,
prompt: "Please share your Email",
retry: "Please try again."
);
}
public async Task ResumeGetEmail(IDialogContext context, IAwaitable<string> UserEmail)
{
string uemail = await UserEmail;
email = uemail;
PromptDialog.Text(
context: context,
resume: ResumeGetPhone,
prompt: "Please share your Phone Number",
retry: "Please try again."
);
}
public async Task ResumeGetPhone(IDialogContext context, IAwaitable<string> mobile)
{
string response = await mobile;
phone = response;
//in this Resume handler, you can save the data that you collected from user into your sql database
await context.PostAsync($"your name:{name}, email:{email}, phonenumber: {phone}");
context.Done(this);
}
}
测试结果:
答案 1 :(得分:-1)
是的,您可以使用bot来收集用户的信息。关于bot的开发存在形式的概念,它允许我们为用户创建问题流。我们习惯于使用C#,连接字符串和INSERT语句来管理SQL端。 Here您会找到有关表单的文档。这些是使用表单的两个示例:(1)和(2)。
基本上,您使用收集数据所需的字段创建实体。通过这个,我们创建了表单流,并且随着实体,机器人将向用户请求信息。它将显示选项并提供最终摘要。
以下代码显示如何使用C#连接到SQL Azure数据库:
using System;
using System.Data.SqlClient; // System.Data.dll
//using System.Data; // For: SqlDbType , ParameterDirection
namespace csharp_db_test
{
class Program
{
static void Main(string[] args)
{
try
{
var cb = new SqlConnectionStringBuilder();
cb.DataSource = "your_server.database.windows.net";
cb.UserID = "your_user";
cb.Password = "your_password";
cb.InitialCatalog = "your_database";
using (var connection = new SqlConnection(cb.ConnectionString))
{
connection.Open();
Submit_Tsql_NonQuery(connection, "2 - Create-Tables",
Build_2_Tsql_CreateTables());
Submit_Tsql_NonQuery(connection, "3 - Inserts",
Build_3_Tsql_Inserts());
Submit_Tsql_NonQuery(connection, "4 - Update-Join",
Build_4_Tsql_UpdateJoin(),
"@csharpParmDepartmentName", "Accounting");
Submit_Tsql_NonQuery(connection, "5 - Delete-Join",
Build_5_Tsql_DeleteJoin(),
"@csharpParmDepartmentName", "Legal");
Submit_6_Tsql_SelectEmployees(connection);
}
}
catch (SqlException e)
{
Console.WriteLine(e.ToString());
}
Console.WriteLine("View the report output here, then press any key to end the program...");
Console.ReadKey();
}
Here您将找到有关如何从C#连接到SQL Azure的更多信息。