4

この単純な「従業員」プログラムを作成して、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です。

これが私が探しているものかどうかわかりません。それで、私の質問は、従業員からのすべてのデータを表示するにはどうすればよいですか? 前もって感謝します!

4

1 に答える 1

7

宿題?

従業員をデータベースに追加するときに、SQL クエリを実行するコードが既にあります。データベース内のすべての従業員を表示するには、addEmployee メソッドと同様のことを行いますが、INSERT sql コマンドを実行する代わりに、SELECT を実行します。

        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();
                    }
                }
            }
        }
于 2013-09-20T13:42:05.460 に答える