在控制台窗口中显示数据库中的数据

本文关键字:数据 数据库 显示 窗口 控制台 | 更新日期: 2023-09-27 18:32:19

我创建了这个简单的"员工"程序来训练我的sql。如果用户愿意,我决定显示数据库中的所有数据。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
namespace MySQLQueryTest
{
class Program
{
    static void Main(string[] args)
    {
        string response = "";
        while (response != "exit")
        {
            Console.Write(">>");
            response = Console.ReadLine();
            switch (response.ToLower())
            {
                case "emp":
                    employeeMenu();
                    break;
                case "-h":
                    Console.WriteLine("emp'tDisplays the Employee database menu");
                    Console.WriteLine("exit'tWill exit the program");
                    Console.WriteLine("clear'tWill clear the console window");
                    break;
                case "clear":
                    Console.Clear();
                    break;
                default:
                    Console.WriteLine("Invalid Command; for help type -h");
                    break;
            }
        }
    }
    static void employeeMenu()
    {
        Console.WriteLine("-------------Menu-------------");
        Console.WriteLine("Type 'list' to list all employees.");
        Console.WriteLine("Type 'add' to add an employee.");
        Console.WriteLine("------------------------------");
        string response = "";
        while (response != "exit")
        {
            Console.Write("EmployeeMenu>");
            response = Console.ReadLine();
            switch (response.ToLower())
            {
                case "add":
                    getInfo();
                    break;
                case "exit":
                    Console.WriteLine("Returning to Main Menu...");
                    break;
                case "list":
                    Console.WriteLine("Here I will display all the SQL data");
                    break;
                default:
                    Console.WriteLine("Invalid Command'n");
                    break;
            }
        }
    }
    static void getInfo()
    {
        Console.Write("First Name: ");
        string fname = Console.ReadLine();
        Console.Write("Last Name: ");
        string lname = Console.ReadLine();
        Console.Write("Job: ");
        string job = Console.ReadLine();
        addEmployee(fname, lname, job);
    }
    static void addEmployee(string the_fname, string the_lname, string the_job)
    {
        var connection = new SqlConnection(@"Data Source=(LocalDB)'v11.0;AttachDbFilename='c:'users'omri'documents'visual studio 2012'Projects'Map'Map'db.mdf';Integrated Security=True");
        SqlCommand cmd;
        connection.Open();
        try
        {
            cmd = connection.CreateCommand();
            cmd.CommandText = "INSERT INTO Employees(fname, lname, job) values('" + the_fname + "', '" + the_lname + "', '" + the_job + "');";
            cmd.ExecuteNonQuery();
            Console.WriteLine("Added " + the_fname + " " + the_lname + " to employee database.");
        }
        catch (Exception)
        {
            throw;
        }
        finally
        {
            if (connection.State == System.Data.ConnectionState.Open)
            {
                connection.Close();
            }
        }
    }
}

}

在网上搜索了一些答案,但没有成功,我发现的最接近的事情是:显示查询结果。

不确定这就是我要找的。所以,我的问题是如何显示员工的所有数据?提前谢谢你!

在控制台窗口中显示数据库中的数据

家庭作业?

您已经有在将员工添加到数据库中时运行 SQL 查询的代码。要显示数据库中的所有员工,您需要执行类似于 addEmployee 方法的操作,但不是运行 INSERT sql 命令,而是要选择

        using (SqlConnection connection = new SqlConnection(YOURCONNECTIONSTRING))
        {
            connection.Open();
            using (SqlCommand command = new SqlCommand("SELECT * FROM Employees", connection))
            {
                using (SqlDataReader reader = command.ExecuteReader())
                {
                    while (reader.Read())
                    {
                        for (int i = 0; i < reader.FieldCount; i++)
                        {
                            Console.WriteLine(reader.GetValue(i));
                        }
                        Console.WriteLine();
                    }
                }
            }
        }