Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WinForms, .Net Framework Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 как использовать SQLite на С#  [new]
iskatelsql
Member

Откуда:
Сообщений: 799
Много гуглил, но так и не понял. Студия предлагает использовать ADO с хитрыми обвязками и LINQ.


/*Но по мне это бред использовать LINQ для элементарных запросов. Да и вообще я запутался.*/

На питоне я писал так просто:

conn = sqlite3.connect('..\\akk.db')
        cur = conn.execute("select id,name,pass,cnt from accounts where checked=0 and used =1");
        res = cur.fetchone()


Вот чтото подобное есть в С# или обязательно извращаться через ADO, LINQ и тп. ?
17 май 18, 22:33    [21418836]     Ответить | Цитировать Сообщить модератору
 Re: как использовать SQLite на С#  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 21011
Используя ADO, никто не вынуждает использовать Linq.
Приведенный вами код как раз похож на то, как это будет выглядеть при работе через ADO

Сообщение было отредактировано: 17 май 18, 22:56
17 май 18, 22:54    [21418886]     Ответить | Цитировать Сообщить модератору
 Re: как использовать SQLite на С#  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 21011
https://metanit.com/sharp/adonet/2.5.php
17 май 18, 22:55    [21418891]     Ответить | Цитировать Сообщить модератору
 Re: как использовать SQLite на С#  [new]
iskatelsql
Member

Откуда:
Сообщений: 799
Shocker.Pro,

Да, но опять таки тащим ADO, для которого нужно устанавливать коннектор.

В том примере прост длл-ка лежит в папке с прогой, и деплоится легко

Я вот в упор не понимаю, зачем для доступа к локальной БД нужно задействовать систему...
Попроще совсем нельзя?
17 май 18, 23:02    [21418917]     Ответить | Цитировать Сообщить модератору
 Re: как использовать SQLite на С#  [new]
iskatelsql
Member

Откуда:
Сообщений: 799
Shocker.Pro,

спс, но опять таки ставим коннектор вместо того чтоб кинуть длл.
17 май 18, 23:05    [21418926]     Ответить | Цитировать Сообщить модератору
 Re: как использовать SQLite на С#  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 21011
iskatelsql
ставим коннектор вместо того чтоб кинуть длл.
в чем разница?
17 май 18, 23:15    [21418950]     Ответить | Цитировать Сообщить модератору
 Re: как использовать SQLite на С#  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 21011
Shocker.Pro
iskatelsql
ставим коннектор вместо того чтоб кинуть длл.
в чем разница?
А, вы дельфист, понятно. В мире .NET длл-ки "ставить" не требуется
17 май 18, 23:20    [21418960]     Ответить | Цитировать Сообщить модератору
 Re: как использовать SQLite на С#  [new]
hVostt
Member

Откуда:
Сообщений: 16272
iskatelsql
извращаться через ADO


ADO.NET
17 май 18, 23:38    [21419001]     Ответить | Цитировать Сообщить модератору
 Re: как использовать SQLite на С#  [new]
iskatelsql
Member

Откуда:
Сообщений: 799
Shocker.Pro
Shocker.Pro
пропущено...
в чем разница?
А, вы дельфист, понятно. В мире .NET длл-ки "ставить" не требуется


А вы, похоже, мимо проходили но погрецца зашли?

"В мире .NET" нету особо ничего кроме микрософтовского, ну оракл еще подсуетился. А вот MYSQL, SQLite... Качай и ставь коннекторы.

Нет, я не дельфист. я дельфи не понимаю как и VB. Ну вот прост не понимаю я их.

А разница в деплое. то я скинул прогу в архиве хотяб, распаковали и работают.

ЗЫЫ. с прошлой работы звонили - не могут на новый комп мою прогу поставить. А там в лятском коннекшнстринг прописана определенная версия, а они поставили новую... (MySql был) Нафиг наживать такие проблемы.
17 май 18, 23:47    [21419020]     Ответить | Цитировать Сообщить модератору
 Re: как использовать SQLite на С#  [new]
iskatelsql
Member

Откуда:
Сообщений: 799
hVostt,

Ну... я наверное очень не умный, но смысл сообщения не понял, честно.

я б хотел так как в примере, который написал при старте.

нельзя ли ответить попроще, и если такое невозможно сказать всего пару слов... "так низя" и докучи добавить "так нифига не получится, сколько не бейся", ну и совсем чтоб добить "микрософт задумал именно так, юзай АДО и не пищи"
17 май 18, 23:52    [21419026]     Ответить | Цитировать Сообщить модератору
 Re: как использовать SQLite на С#  [new]
ВМоисеев
Member

Откуда: Редкино
Сообщений: 2013
>iskatelsql, вчера, 22:33 [21418836]

>Много гуглил, но так и не понял.


Посмотри например здесь
18 май 18, 00:07    [21419050]     Ответить | Цитировать Сообщить модератору
 Re: как использовать SQLite на С#  [new]
hVostt
Member

Откуда:
Сообщений: 16272
iskatelsql
hVostt,

Ну... я наверное очень не умный, но смысл сообщения не понял, честно.

я б хотел так как в примере, который написал при старте.

нельзя ли ответить попроще, и если такое невозможно сказать всего пару слов... "так низя" и докучи добавить "так нифига не получится, сколько не бейся", ну и совсем чтоб добить "микрософт задумал именно так, юзай АДО и не пищи"


Ещё раз. ADO.NET -- ключевое слово для гуглинга. Выдаёт тысячи страниц на всех языках.
18 май 18, 00:09    [21419054]     Ответить | Цитировать Сообщить модератору
 Re: как использовать SQLite на С#  [new]
ВМоисеев
Member

Откуда: Редкино
Сообщений: 2013
>iskatelsql, вчера, 22:33 [21418836]

>Много гуглил, но так и не понял.


Посмотри например здесь
18 май 18, 00:10    [21419056]     Ответить | Цитировать Сообщить модератору
 Re: как использовать SQLite на С#  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 5303
iskatelsql
ЗЫЫ. с прошлой работы звонили - не могут на новый комп мою прогу поставить. А там в лятском коннекшнстринг прописана определенная версия, а они поставили новую... (MySql был) Нафиг наживать такие проблемы.

Потому что нормальные люди при разработке используют nuget-пакеты, а не библиотеки, установленные в GAC.
18 май 18, 06:26    [21419243]     Ответить | Цитировать Сообщить модератору
 Re: как использовать SQLite на С#  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 21011
iskatelsql
А разница в деплое. то я скинул прогу в архиве хотяб, распаковали и работают.
Ну и? Я до сих пор не понимаю проблему. Так и будет, вне зависимости от того, используете вы ADO или нет.
iskatelsql
я б хотел так как в примере, который написал при старте.
Я дал ссылку, там именно такой пример
18 май 18, 09:33    [21419447]     Ответить | Цитировать Сообщить модератору
 Re: как использовать SQLite на С#  [new]
13th
Member

Откуда:
Сообщений: 479
iskatelsql
Много гуглил, но так и не понял. Студия предлагает использовать ADO с хитрыми обвязками и LINQ.


/*Но по мне это бред использовать LINQ для элементарных запросов. Да и вообще я запутался.*/

На питоне я писал так просто:

conn = sqlite3.connect('..\\akk.db')
        cur = conn.execute("select id,name,pass,cnt from accounts where checked=0 and used =1");
        res = cur.fetchone()


Вот чтото подобное есть в С# или обязательно извращаться через ADO, LINQ и тп. ?


Как сделал я (VS2017):
1. Создал проект
2. добавил nuget package System.Data.SQLite (и иже с ними)
3. добвил
  <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=.\Store.db" providerName="System.Data.SQLite" />
  </connectionStrings>

4. добавил/заменил:
    <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v13.0" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SQLite" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
      <provider invariantName="System.Data.SQLite.EF6" type="System.Data.SQLite.EF6.SQLiteProviderServices, System.Data.SQLite.EF6" />
    </providers>
  </entityFramework>
  <system.data>
    <DbProviderFactories>
      <add name="SQLite Data Provider (Entity Framework 6)" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite (Entity Framework 6)" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Data.SQLite.EF6" />
      <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
    </DbProviderFactories>
  </system.data>

5. Декларации:
	public class Customer :INotifyPropertyChanged
	{
		private int id;
		private string name;
		private string address;

		public Customer(int _id, string _name, string _address)
		{
			id = _id;
			name = _name;
			address = _address;
		}

		public Customer(Customer _customer)
		{
			id = _customer.Id;
			name = _customer.Name;
			address = _customer.Address;
		}

		public Customer()
		{
		}
		[Key]
		public int Id { get => id; set => id = value; }
		public string Name { get { return name; } set { name = value; OnPropertyChanged("Name"); } }
		public string Address { get { return address; } set { address = value; OnPropertyChanged("Address"); } }

		public event PropertyChangedEventHandler PropertyChanged;
		public void OnPropertyChanged([CallerMemberName]string prop = "")
		{
			if (PropertyChanged != null)
				PropertyChanged(this, new PropertyChangedEventArgs(prop));
		}
	}

	public class AppContext : DbContext
	{
		public AppContext() : base("DefaultConnection")
		{
			//
		}

		public DbSet<Customer> Customers { get; set; }
	}

6. использование (хочешь - LINQ, хочешь - получай обычные дата-сеты):
			db = new AppContext();
			db.Customers.Load();
			this.DataContext = db.Customers.Local.ToBindingList(); // это для WPF

			var qry = from c in db.Customers select c;
			foreach(var c in qry)
			{
				Debug.WriteLine("Customer #{0}: {1} from '{2}'", c.Id.ToString(), c.Name, c.Address);
			}
18 май 18, 17:25    [21421042]     Ответить | Цитировать Сообщить модератору
 Re: как использовать SQLite на С#  [new]
Petro123
Member

Откуда: Загрузочный сектор Москвы (AutoPOI.ru)
Сообщений: 38643
13th
Entity Framework 6)" 
ну вот. А говорил не выходит каменный цветок).
Молодца! Удачи!
18 май 18, 19:16    [21421354]     Ответить | Цитировать Сообщить модератору
 Re: как использовать SQLite на С#  [new]
iskatelsql
Member

Откуда:
Сообщений: 799
Shocker.Pro
Я дал ссылку, там именно такой пример


так ответил же еще выше - нужно установить коннектор. А это нифига не тоже самое что притащить с собой длл.

Спасибо, конечно, на один из вопросов Вы ответили подробно. Но другой вопрос остается... Опять таки установка этих коннекторов.

из минусов:
1 их нужно качать и ставить, и именно такой версии
2 особо радуют приходящие админы, без которых ничего не поставишь, а им "никогда некогда"
18 май 18, 21:59    [21421637]     Ответить | Цитировать Сообщить модератору
 Re: как использовать SQLite на С#  [new]
hVostt
Member

Откуда:
Сообщений: 16272
iskatelsql,

nuget
18 май 18, 22:02    [21421643]     Ответить | Цитировать Сообщить модератору
 Re: как использовать SQLite на С#  [new]
Shocker.Pro
Member

Откуда: ->|<- :адуктО
Сообщений: 21011
iskatelsql
Shocker.Pro
Я дал ссылку, там именно такой пример


так ответил же еще выше - нужно установить коннектор. А это нифига не тоже самое что притащить с собой длл.
Еще раз - объясни разницу. Что ты подразумеваешь под "установить"?
19 май 18, 00:01    [21421804]     Ответить | Цитировать Сообщить модератору
 Re: как использовать SQLite на С#  [new]
iskatelsql
Member

Откуда:
Сообщений: 799
Shocker.Pro
iskatelsql
пропущено...


так ответил же еще выше - нужно установить коннектор. А это нифига не тоже самое что притащить с собой длл.
Еще раз - объясни разницу. Что ты подразумеваешь под "установить"?


Может я туплю, но в моем понимании ADO это всетаки "некоторая фигня которую надо скачать и установить в систему" и по умолчанию идет только для MS SQL server и вроде для оракла.

я же SqLite выбрал как относительно удобнуб БД, подходящую для Portabl версий, не требующих совсем никаких установок в системе.

Както так.
19 май 18, 01:08    [21421905]     Ответить | Цитировать Сообщить модератору
 Re: как использовать SQLite на С#  [new]
Roman Mejtes
Member

Откуда: г. Пермь
Сообщений: 3604
Нафига весь этот геморой, когда можно SqlLite поставить их NuGet репозитория и всё будет работать, кто то может мне это объяснить?
19 май 18, 09:27    [21422128]     Ответить | Цитировать Сообщить модератору
 Re: как использовать SQLite на С#  [new]
Изопропил
Member

Откуда:
Сообщений: 31277
iskatelsql
Может я туплю

да
19 май 18, 09:30    [21422130]     Ответить | Цитировать Сообщить модератору
 Re: как использовать SQLite на С#  [new]
ВМоисеев
Member

Откуда: Редкино
Сообщений: 2013
>iskatelsql, сегодня, 01:08 [21421905]

>Может я туплю, …
Думаю, что имеет смысл разделить работу по изготовлению программы, от работы по её установке (развертыванию).
NuGet потребуется только для настройки Visual Studio.
C# программы могут обходиться без инсталляции - копируешь содержимое папки и работаешь - необходимые .dll студия запишет в папку при компиляции. Но от согласования версий .Net Ftamwork не уйти - придется перекомпилировать
19 май 18, 10:03    [21422149]     Ответить | Цитировать Сообщить модератору
 Re: как использовать SQLite на С#  [new]
Lev Limin
Member

Откуда:
Сообщений: 4
iskatelsql
Может я туплю, но в моем понимании ADO это всетаки "некоторая фигня которую надо скачать и установить в систему" и по умолчанию идет только для MS SQL server и вроде для оракла.


А разве если ты пишешь под .NET значит стоит фреймворк и значит стоит ADO.NET?

iskatelsql
я же SqLite выбрал как относительно удобнуб БД, подходящую для Portabl версий, не требующих совсем никаких установок в системе.
Както так.


Да, но способ доступа до БД не скачал :)
ADO.NET это универсальный интерфейс для доступа к БД. И что бы не плодить сущностей в виде самобытного API, есть поддержка ADO.NET.

Иначе надо курить мануалы, как это приходится делать на питоне.

Если уж хочется прям самобытного, то используй LiteDB. Написана полностью под .NET и не требует ADO.NET
19 май 18, 10:54    [21422200]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / WinForms, .Net Framework Ответить