Что такое C# эквивалент java ResultSet для MySQL Сервера? - PullRequest
1 голос
/ 05 апреля 2020

Я новичок в изучении C#, класс resultSet в java очень прост в использовании (по крайней мере, для меня) для восстановления табличных данных из выборок, я искал, как читать данные из выбора в C# но я не знаю, являются ли они более удобными методами.

Каков наилучший способ получения табличных данных из MySQL в C#?

Ответы [ 2 ]

1 голос
/ 05 апреля 2020

Я бы постарался сделать это коротким ... Я не совсем использовал java (просто основы c знания), и при этом я не знаю класс resultSet, но я могу рассказать вам, как получить данные таблицы из MySQL в c# ... я бы объяснил использование NHIBERNATE в качестве основы выбора.

При соединении между базами данных и приложениями стандартом является использование подходящего ORM (Object Relational Mapper). Цель которого - связать классы (сущности) приложений с таблицами базы данных. у вас может быть таблица, представленная ниже: -

CREATE TABLE [dbo].[ShipmentRequest](
    [Id] [int] IDENTITY(1,1) NOT NULL,
    [Name] [nvarchar](max) NULL,
    [FirstName] [nvarchar](max) NULL,
    [LastName] [nvarchar](max) NULL,
)

эта таблица sql будет переведена в следующий класс

public class ShipmentRequest
{
   public virtual int Id {get; set;}
   public virtual string Name {get; set;}
   public virtual string FirstName {get; set;}
   public virtual string LastName {get; set;}
}

теперь мы разбираемся с некоторыми основами в ORM затем вы захотите решить, какой ORM лучше всего подключить c# к MySQL ... двумя наиболее распространенными ORM в c# являются Entity Framework и NHibernate ... эти две функции очень похожи на приведенное выше объяснение, вы бы создали классы с соответствующей конфигурацией, чтобы позволить генерировать базу данных и таблицы (или синхронизировать, если БД уже существует).

Было сказано, что я просто объясню один из ORM, и это будет NHIBERNATE, как указано ранее.

Для начала откройте визуальную студию (скачайте и установите, если у вас ее нет). создать простой проект или открыть существующий проект. щелкните по сборке / проекту, затем go к зависимостям / каркасу. Щелкните правой кнопкой мыши на нем и go, чтобы управлять пакетами nuget. если вам нужно знать, менеджер пакетов Nuget в c# является сторонним репозиторием фреймворков, в котором люди могут создавать стандартные библиотеки c#, которые можно загрузить из Visual Studio, менеджер пакетов Nuget обеспечивает хорошо организованное размещение сторонних библиотек, так как а также простая интеграция с c# проектами (чаще всего, в один клик). Вы загружаете NHiberate (найдите его и нажмите «Установить»).

Вы сопоставляете вышеуказанный класс с нужной вам таблицей следующим образом: -

publi c class ShipmentRequestMap: ClassMap

{

   public ShipmentRequestMap()

   {

       Id(x => x.Id);

       Map(x => x.Name);

       Map(x => x.FirstName);

       Map(x => x.LastName);

       Table("ShipmentRequest");

   }

} ​​

Ваш файл конфигурации выглядит примерно так

using System.IO;
using System.Reflection;
using FluentNHibernate.Cfg;
using FluentNHibernate.Cfg.Db;
using NHibernate;
using NHibernate.Cfg;
using NHibernate.Dialect;
using NHibernate.Driver;
using NHibernate.Tool.hbm2ddl;

namespace YourApplication
{
    public class NHibernateConfig
    {
        private const string connStr = "Server=.;Port=4005;Database=yourdatabaseDB;Uid=yourusername;Pwd=yourpassword;";

        public static ISessionFactory CreateMySqlSessionFactory(){
           var config = new Configuration();

           config.DataBaseIntegration(x => {
               x.Driver<MySqlDataDriver>();
               x.ConnectionString = connStr;
               x.Dialect<MySQL5Dialect>();
           });
           var sessionFactory = Fluently.Configure(config)
                                        .Mappings(m => m.FluentMappings.AddFromAssembly(Assembly.GetExecutingAssembly())).ExposeConfiguration(cfg => new SchemaExport(cfg)

            .Create(false, false)).BuildSessionFactory();

           return sessionFactory;

        }                      
    }   
}

База данных теперь подключена к приложению. остается только написать свой IRepository, BaseRepository и другие службы ...

ваш репозиторий будет выглядеть примерно так:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;

namespace IRepository.Data {
    public interface IRepository<T> {
        void Create(T entity);
        void Update(T entity);
        void Delete(T entity);
        void Copy(T source, T target);
        void Flush();

        T Get(int id);
        T Get(Expression<Func<T, bool>> predicate);

        IQueryable<T> Table { get; }

        int Count(Expression<Func<T, bool>> predicate);
        IEnumerable<T> Fetch(Expression<Func<T, bool>> predicate);
        IEnumerable<T> Fetch(Expression<Func<T, bool>> predicate, Action<Orderable<T>> order);
        IEnumerable<T> Fetch(Expression<Func<T, bool>> predicate, Action<Orderable<T>> order, int skip, int count);
    }
}

Так вот как подключение базы данных к приложению в c# готово, вы также можете рассмотреть возможность использования структуры сущностей, если хотите. счастливого кодирования !!

0 голосов
/ 05 апреля 2020

U может использовать SqlDataAdapter для заполнения DataTable или DataSet в C#.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...