Visual C # - простая программа, которая может запомнить пользовательский ввод? - PullRequest
1 голос
/ 21 марта 2012

Я новичок в C # и пытаюсь получить хорошее начало.

Я могу сделать простую программу для форм с некоторыми кнопками и прочим. Но вот мой вопрос:

Как - или как лучше хранить пользовательские данные в программе?

Допустим, я создаю простую программу, в которой пользователь может вводить текстовую строку через текстовое поле и «добавлять» ее в список с помощью кнопки. Когда пользователь закрывает и снова открывает программу, он должен был запомнить каждую введенную строку. (Как в журнале).

Как это лучше всего сделать? Я искал Google, но это не помогло мне вообще. Я должен использовать базу данных? Сохранить и прочитать в текстовый файл? (ini / xml?)

И нужно ли устанавливать эту простую программу? Или он может работать как исполняемый exe-файл - и все же сохранять / читать на компьютере пользователя?

С наилучшими пожеланиями (извините за мой английский).

Ответы [ 4 ]

1 голос
/ 21 марта 2012

Самым простым и масштабируемым способом для такого рода является использование некоторой встроенной базы данных. Я , лично, пошел бы на Sqlite .В разделе загрузки вы также можете найти бинарные файлы для .NET.

Существует множество других возможных вариантов, но это именно то, что I выберет, имея в руках информацию, предоставленную по этому вопросу.

Надеюсь, это поможет.

1 голос
/ 21 марта 2012

Самый простой вариант - использовать файл XML. Я бы не попробовал INI-файл, если вам не нужно что-то конкретное.

Текстовый файл является хорошим вариантом, если вы знаете, что вам когда-нибудь понадобится хранить данные только из одной области ввода текста.

XML позволит вам хранить и извлекать данные непосредственно из ваших объектов посредством сериализации.

Нет - простой исполняемый файл не нуждается в установщике, но если вы не создадите установщик, вы не сможете легко добавить такие вещи, как ярлыки и т. Д.

0 голосов
/ 16 июля 2018
    using System;
    using System.Collections.Generic;
    using System.Configuration;
    using System.Data.SqlClient;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;

    namespace WindowsFormsApplication1
    {
        class ConnectionManager
        {
            public static SqlConnection getConnection()
            {
                try {
                    String conn = ConfigurationManager.ConnectionStrings["Test"].ToString();
                    SqlConnection sc = new SqlConnection(conn);
                    return sc;
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message);
                    return null;
                }
            }
        }
    }


 private DataTable getData()
        {
            try
            {
                SqlConnection conn = ConnectionManager.getConnection();
                conn.Open();
                String sql = "SELECT * FROM Appliance_Manufacturers";
                SqlCommand cmd = new SqlCommand(sql, conn);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                da.Fill(dt);
                conn.Close();
                return dt;
            }catch(Exception e)
            {
                MessageBox.Show(e.Message);
                return null;
            }
        }

        private bool addManufacture(String name)
        {

            try
            {
                SqlConnection con = ConnectionManager.getConnection();
                con.Open();
                string query = "INSERT INTO Appliance_Manufacturers (Manufacturer) VALUES('" + name + "')";
                SqlCommand cmd = new SqlCommand(query, con);
                int status = cmd.ExecuteNonQuery();
                con.Close();
                return (status == 1);
            }
            catch (SqlException e)
            {
                MessageBox.Show(e.Message);
                return false;
            }
        }
    }

intvaxis

0 голосов
/ 21 марта 2012

Если вы новичок, у вас есть правильная идея.
Вы можете хранить данные в текстовом / XML-файле или в базе данных.
Вы можете перейти на XML, как указано @dice, но начать программирование на XMLможет быть пугающим.
Я бы предложил пойти на хранение текстовых файлов и почувствовать, как все работает.

Вот отличная статья , чтобы начать с кодирования ввода-вывода.Позже измените этот

string[] lines = {"First line", "Second line", "Third line"};

, чтобы он указывал на пользовательский ввод.

...