C# Wyjątek od HRESULT: 0x800A03EC w aplikacji wpisującej dane do Excela

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(); 

C# Non-invocable member 'Microsoft.Office.Interop.Excel.Range.Offset’ cannot be used like a method.

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”;

Dynamiczne grupowanie kolumn w raporcie SSRS – Krok po kroku z obrazkami

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 »

By Rafał Kraik in SSRS

C# Otwarcie strony w domyślnej przeglądarce użytkownika

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.

C# Operacje na rejestrze

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 »

Rekrutacja! Młodszy trener w Akademii trenerów IT przy bit Polska

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 »

By Rafał Kraik in Aktualności

Chwilowe wyłączanie CONSTRAINT CHECK

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 »
By Rafał Kraik in SQL