用VS的C#做抽奖系统如何实现顾客是否中奖的查询

问题遇到的现象和发生背景

小组任务 主题是抽奖系统
目前卡在顾客的中奖查询这块了

img

遇到的现象和发生背景,请写出第一个错误信息
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
dao dao = new dao();
            string sql= $"select 奖项 from Table_2 where 抽奖号码='{textBox1.Text}'";
            if()
            {
                MessageBox.Show("恭喜中奖!");
            }
            else
            {
                MessageBox.Show("谢谢参与!");
            }

运行结果及详细报错内容
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%

设想是客户在输入自己的抽奖号码之后去数据库存放中奖名单的表里过个查询 如果查询结果不为空就直接跳弹窗“恭喜中奖”,查询结果为空就跳“谢谢参与”
不知道if()里面应该怎么写才可以实现 可能if之前也有点问题

我想要达到的结果,如果你需要快速回答,请尝试 “付费悬赏”

回答:你这里如果是直接使用SQLStatement去执行SQL语句,会导致SQL注入问题,你可以通过使用类似EF(EntiyFramework)的框架进行占位解决,或者自己手动判断特殊字符并处理;在这里可以简单的通过判断特殊字符进行处理的方式解决,执行SQL语句的话,可以参考这段代码:

public static void TestConnSQlServer()
{
    SqlConnection conn = new SqlConnection
    {
        ConnectionString = "Data Source=127.0.0.1,1433;Initial Catalog=test_db;uid=sa; pwd=0925"
    };
    conn.Open();
    string sql = "select * from testConn";
    SqlCommand command = new SqlCommand(sql, conn);
    SqlDataReader Reader = command.ExecuteReader();
    while (Reader.Read())
    {
        Console.WriteLine(Reader["ID"].ToString());
    }
    conn.Close();
    Console.ReadLine();
}

img

对于C#初学者来说,使用ADO.NET操作数据库是最简单的方式之一,你的问题描述代码中只提供了sql语句,C#程序还没有与数据库建立连接,也没有执行SQL语句。

关于C#使用ADO.NET操作数据库,我之前写了个系列教程《C#+ADO.NET数据库入门教程 》,供参考: