[Databases] ADO.NET Homework 2015


7

Тази домашна ме накара да тормозя Google малко повече от друг път.  Ето я и нея -> HERE

Аз лично имах проблем с OLE.DB provider-а, който реших като инсталирах "AccessDatabaseEngine.exe". Трябваше ми известно време докато загрея как да го реша, така че, ако и вие го имате, може да го изтеглите от тук.

Другият проблем, който срещнах беше при записването на изтеглените снимки от базата с данни и записването им на файловата система. Доколкото прочетох темите от миналата година, след като изгубих един час, картинките имат 78 байта header, който се взима предвид и се ползва това магическо число.

Надявам се да съм полезен с тези две забележки по домашното и спестите времето, което изгубих аз :)




Отговори



1
Ще си позволя да попитам тук, дали този срок за домашното е реален  Краен срок: 14/10/2015, 23:59  нямам идея. Просто ако следваме хронологията би трябвало да е след двете домашни с краен срок 19.10. Ако някои има актуално инфо моля да сподели :)

от Nayata (3190 точки)


2
Променено е Краен срок: 21/10/2015, 23:59

от NP.Kumanov (134 точки)


2
Препоръка - използвай using блок за SqlCommand обектите - http://stackoverflow.com/questions/23185990/sqlcommand-with-using-statement

от Teodor92 (13062 точки)


3

Предполагам всеки е имал проблеми с имплементацията на това домашно, най-вече заради гърмежите при използването на OLE.DB provider-a. Аз лично инсталирах освен поостарелия вече 2007 Office System Driver, Microsoft Access Database Engine 2010, който е наличен за х86 и х64.

Тук намерих инфо за свалянето на картинките от Northwind.

Като цяло доста интересно домашно.

Това е моята имплементация.

По-долу ще намерите метод, който връща connection string-а за различни версии на Microsoft Excel:

string GetConnectionString() { // XLSX - Excel 2007, 2010, 2012, 2013 var props = new Dictionary<string, string> { ["Provider"] = "Microsoft.ACE.OLEDB.12.0", ["Extended Properties"] = "Excel 12.0 XML", ["Data Source"] = "../../../trainers.xlsx" }; // XLS - Excel 2003 and Older //props["Provider"] = "Microsoft.Jet.OLEDB.4.0"; //props["Extended Properties"] = "Excel 8.0"; //props["Data Source"] = "../../trainers.xlsx"; var sb = new StringBuilder(); foreach (var prop in props) { sb.Append(prop.Key); sb.Append('='); sb.Append(prop.Value); sb.Append(';'); } return sb.ToString(); }


от lnikod4s (6538 точки)


4
Моето домашно ТУК.  

от dchakov (861 точки)


0

@antoanelenkov, на въпроса от твоето домашно по зад. 7 - ето отговор:

           for (int i = 5; i < 10; i++)
            {
                command.Parameters.Clear();

                command.Parameters.AddWithValue("@name", "Student" + i);
                command.Parameters.AddWithValue("@score", i);            
                queryResult += command.ExecuteNonQuery();
            }

т.е., трябва да се чистят параметрите, за да работи с брояча (при теб е counter).

Наистина много ми помогна твоят пост, а и тези на колегите до тук, защото обменът между различни DBMS-и е най-трудното нещо. Но да перефразирам един известен виц, добрата новина е, че DBMS-и има много :-)

В момента се мъча с MySql на зад. 9, защото не ми приема паролата при стартиране във Visual Studio. Ако някой ми подскаже, ще бъде от полза.

Моето домашно е ТУК.


от ellapt (6303 точки)


0

Здравейте, на 5та задача ако не ви излизат картинките след като ги save-ате пробвайте да запишете със offset 78 от получения byte[]:

using (fileWriter) { // the pictures in Northwind are stored with leading bytes of // non standard information int startOffset = 78; byte[] currentPicture = (byte[])readStream[0]; Task writeCurrentFile = fileWriter.WriteAsync( currentPicture, startOffset, currentPicture.Length - startOffset); tasks.Add(writeCurrentFile); }

Поне при мен така се оправи.


от kidroca (1498 точки)


3

Ето и аз какво скалъпих - click!

Единственото, което мога да добавя към казаното до тук е тази статийка за подкарването на SQLite, която щеше да ми е много полезна за отборната, ако я бях намерил ден-два по-рано. ;d


от dilyantraykov (1005 точки)