2012-09-18
W bazie danych była sobie tabela ze zdefiniowanym PrimaryKey. Program pobierał sobie te dane do DataSet, ale okazało się, że przy odwoływaniu się do właściwości PrimaryKey powstałego DataTable, Data Table nie posiada Primary Key.
Podczas odczytywania danych do DataTable są kopiowane albo informacje o strukturze albo rekordy. poratowało mnie dopisanie takiej oto linijki:
string sqltext = „SELECT * FROM Production.Product”;
SqlConnection sqlconnection = new SqlConnection(WandaConnectionString);
SqlCommand sqlcommand= new SqlCommand(sqltext, sqlconnection);
SqlDataAdapter sqladapter = new SqlDataAdapter(sqlcommand);
sqladapter.MissingSchemaAction = MissingSchemaAction.AddWithKey;
DataSet ds = new DataSet();
sqladapter.Fill(ds, „Product”);
Rozwiązanie znalazłem tutaj:
http://forums.codeguru.com/showthread.php?294417-DataTable-doesn-t-contain-primary-key-information
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 »