2012-09-18
W aplikacji wykorzystującej VSTO w pewnym momencie, a dokładniej przy instrukcji:
rg.Offset[noRow, noColumn].Value = dr[noColumn];
pojawiał się bład:
Wyjątek od HRESULT: 0x800A03EC
Błąd niestety niezbyt komunikatywny. Szukałem rozwiązań. Wpis http://www.made4dotnet.com/Default.aspx?tabid=141&aid=15 przywiódł mnie na myśl, że przyczyną może być próba podejmowana przez Excela w celu sformatowania pola pobieranego w moim przypadku ze źródła danych. Bingo! Kolumną na której proces się wysypywał był ROWGUID, który wygląda mniej więcej tak:
ecfed6cb-51ff-49b5-b06c-7d8ac834db8b
Dopisałem więc w mojej pechowej linijce:
rg.Offset[noRow, noColumn].Value = dr[noColumn].ToString();
2012-09-18
Walczę z VSTO. Znalazłem fajne tutoriale video dotyczące pracy z Excelem z poziomu c#: http://msdn.microsoft.com/en-us/office/hh133459.aspx Przykłądy są niestety w Visual Basic, a ja uwielbiam C#. Dlatego muszę przenosić kod z VB do C#. Ogólnie rzecz biorąc nie jest to trudne zadanie, ale chwilę utknąłem na błędzie
Non-invocable member 'Microsoft.Office.Interop.Excel.Range.Offset’ cannot be used like a method.
Miejsce w kodzie wygląda tak:
excelRange.Offset(0, 0).Value = „abc”;
gdzie excelRange to obiekt typu Excel.Range
Przyczyna jest prosta. W c# należy użyć nawiasów kwadratowych, więc pomogła zmiana na:
excelRange.Offset[0, 0].Value = „abc”;
2012-09-17
Problem: Chcesz przygotować raport prezentujący, powiedzmy produkty pogrupowane ze względu na kolor, a w ramach kolorów ze względu na klasę lub odwrotnie i z tym odwrotnie masz właśnie kłopot. Użytkownik ma decydować o kolejności grupowania.

Czytaj dalej »
2012-09-14
Aplikacja desktopowa może przesłać do systemu operacyjnego żądanie otwarcia strony internetowej poprzez wywołanie:
Process.Start(http://www.mobilo24.eu);
W takim przypadku żądanie zostanie zrealizowane za pomocą domyślnej aplikacji, czyli otwarta zostanie domyślna przeglądarka.
2012-09-14
Aby pracować z rejestrem dodaj namespace:
using Microsoft.Win32;
Aby odczytać/sprawdzić obecność klucza możesz wykonać następujace czynności:
string foundValue=null;
//Utwórz klucz, od którego rozpoczniesz "drążenie rejestru"
RegistryKey myKey = Registry.LocalMachine;
//Odwołaj się do podklucza wybranej gałęzi rejestru
RegistryKey subKey = myKey.OpenSubKey("Software\\Mobilo");
//Jeżeli taki klucz był obecny, możesz zwrócić zapisane w nim wartości
if (subKey != null)
{
//drugi parametr w GetValue to domyślna wartość
foundValue=subKey.GetValue("Color","Blue").ToString();
}
else
{
foundValue=null;
}
A teraz, w jaki sposób można tworzyć nowe pozycje w rejestrze: Czytaj dalej »
2012-09-13
Młodszy trener w Akademii trenerów IT przy bit Polska
Do kogo skierowany jest program?
•jeśli jesteś studentem studiów informatycznych lub pokrewnych (studia dzienne, zaoczne, absolwenci)
•interesujesz się nowymi technologiami
•lubisz dzielić się wiedzą
•jesteś komunikatywny i otwarty na ludziZapraszamy do uczestnictwa w programie Akademia trenerów IT przy bit Polska.
…
Czytaj dalej »
2012-09-13
Wyobraźmy sobie tabelę:
CREATE TABLE test
(Id INT IDENTITY PRIMARY KEY,
Value INT NOT NULL
CONSTRAINT CHK_Test_Value
CHECK (Value<=100))
Jeżeli na chwilę chcesz wyłączyć CONSTRAINA CHECK zrób to tak:
ALTER TABLE test NOCHECK CONSTRAINT CHK_Test_Value Czytaj dalej »