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

时间:2013-09-20 13:31:27

标签: c# sql visual-studio-2012

我创建了这个简单的员工'程序来训练我的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();
            }
        }
    }
}

}

我在互联网上搜索一些答案,但没有成功,我发现最接近的是:Displaying result of query

不确定这是我正在寻找的东西。 所以,我的问题是如何显示员工的所有数据? 提前谢谢!

1 个答案:

答案 0 :(得分:7)

家庭作业?

在将员工添加到数据库中时,您已经拥有运行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();
                    }
                }
            }
        }