Hirdetés

2024. május 2., csütörtök

Gyorskeresés

Hozzászólások

(#1201) x007 válasza Briganti (#1194) üzenetére


x007
tag

Itt az adapter használata egyébként teljesen fölösleges.

openConnection();
dbCommand = new OleDbCommand(qText, dbConnection);
dbCommand .ExecuteNonQuery();
closeConnection();

Másrészt: Csináltam neked egy kis DataSet tutorial videót anno. Miért nem úgy használod? Nem is kéne SQL parancsokat írnod, mert képes arra, hogy a DataSeten végrehajtott módosításokat (hozzáadás, törlés, érték módosítás) automatikusan végrehajtsa az adatbázisban. Nem teljesítménykritikus alkalmazásnál szerintem mindenképpen érdemes lenne használni.

[ Szerkesztve ]

(#1202) Briganti válasza x007 (#1201) üzenetére


Briganti
tag

jajjj tenyleg, a multkor lementettem a videot, es elfelejtettem megnezni :(( pedig mennyi munkat megsporolt volna, de mostmar megvan, es igy utolag is NAGYON SZEPEN KOSZI!! :)

kb 1 heti munkamat csinaltad meg 5 percbe, de aztmondjak aki hulye fizessen is meg erte :)

If debugging is a process of removing bug, then programming is a process of putting them in ...

(#1203) FehérHolló


FehérHolló
veterán

Létezik valami .NET által támogatott mód XML formátumú adatbázisban SQL alapú lekérdezésre. (LINQ-s lekérdezés működik.)
Esetleg valami .NET-es támogatás SQL lekérdezés -> LINQ lekérdezés konverzióra? (Forditott irányról tudok.)

Ha mondotok valami osztálynevet, azzal már ki vagyok segitve, nem vágyom teljes programrészletekre.

Skynet is real. It's called Google.

(#1204) x007 válasza FehérHolló (#1203) üzenetére


x007
tag

Pongyolán megfogalmazva: Az XML egy hierarchikus adatbázis, az SQL pedig relációs adatbázisokhoz van. Innentől nincsen értelme a kérdésnek :). XPath segítségével lehet lekérdezéseket definiálni XML-hez.

http://en.wikipedia.org/wiki/XPath_1.0

A másik problémádra szerintem biztos, hogy nincsen beépített .NET osztály. Egy ilyet találtam viszont:

http://www.sqltolinq.com/

Nem próbáltam ki, de van egy olyan érzésem, hogy több bajod lesz vele, mintha magadtól írnád át a lekérdezéseket :).

(#1205) FehérHolló válasza x007 (#1204) üzenetére


FehérHolló
veterán

Azóta megoldottam a problémát.

XPath a sémára épül, ami nálam szükségtelenül elbonyolította volna a helyzetet, ugyanis a lekérdezés eredményét egy C# program dolgozza (majd) fel. XML-es LINQ ([link]) tökéletesen megfelelt a célnak. Egyébként ha az SQL alapú adatbázisokat kiterjesztjük úgy, hogy táblában lehet tábla is, akkor már elég értelmes dolog SQL (alakú) lekérdezésről beszélni XML adatbázisoknál is. Véges mennyiségű munkával létre lehet hozni olyan kódrészt, ami az alap "select xy from Z where kifejezés order by szabály" alakú SQL lekérdezést átfordítja XML-es LINQ-re. Az eredmény persze egy XML fa lesz. Hasonló analógiára meg lehet oldani a törlést és a változtatást is.
Az eredeti kérdésem arra irányult, hogy létezik-e ez már .NET keretrendszerben megírva, mert akkor nem kellett volna nekem összegányolnom.

Az SQL to LINQ-et pedig nem használhatom.

Skynet is real. It's called Google.

(#1206) FehérHolló válasza FehérHolló (#1205) üzenetére


FehérHolló
veterán

Ami így visszaolvasva biztos, hogy nem egyértelmű: Nem egy sima XML dokumentumról beszélek, hanem egy olyan XML alapú adatbázisról, mely egy csomó egyéb formai és tartalmi megkötésnek is eleget tesz.
Mindenesetre megoldottam azt a két dolgot, amiért alapban ideírtam, szóval ezek után már mindegy. :)

Nem beszélhetek sajnos konkrétumokban.

[ Szerkesztve ]

Skynet is real. It's called Google.

(#1207) Vasinger!


Vasinger!
nagyúr

Kérnék egy kis segítséget. Írnék egy programot, ami azt csinálja, hogy: Beírok egy nevet kis betűvel, aztán entert nyomva a nevet nagy betűvel írja ki, de csak az első karakter legyen a nagy. Ezt, hogyan lehetne megcsinálni?
Én eddig jutottam: (nem kinevetni)

Console.WriteLine("Kérem a neved!");
string s = Console.ReadLine();
int i= s.IndexOf ("0,1");
String s2 = s.ToUpper();
Console.WriteLine("Szia " + s2 + "!");

Esetleg, ha azt is leírnátok, hogy mit rontottam el, vagyis, hogy miért azt kéne megköszönném. :R

[ Szerkesztve ]

(#1208) bpx válasza Vasinger! (#1207) üzenetére


bpx
őstag

i változó totál felesleges, nem is használja semmi, és ebben a formában az IndexOf a "0,1" string-et keresi, aminek hát semmi értelme...

string s2 = s[0].ToString().ToUpper() + s.Substring(1);

veszi az első karaktert amit nagybetűsre cserél, majd a maradékot érintetlenül

(#1209) Vasinger! válasza bpx (#1208) üzenetére


Vasinger!
nagyúr

Köszi, így müxik, de azért gondoltam az i változó bevezetését, mert indexof-fal akartam volna kikeresni az első karaktert, nah mind1. :R

(#1210) Bumbi0


Bumbi0
csendes tag

Hogyan tudom megincsálni, hogy amelyik ablak fölé viszem az egeret, annak a széleit körbe rajzolja egy vonallal.
Ilyenkor nem az ablak belsejére a gondolok, hanem a bordáira a device context-re. Egy olyan megoldásra lenne szükségem, ami működik Win 7 alatt is.
Eddig egy ilyenem van, de valamiért nem akar működni Win 7 alatt, viszont XP alatt meg igen.

IntPtr hwnd = GetWindowUnderCursor();

IntPtr hDC = Win32Api.GetWindowDC(hwnd);
Win32Api.Rect rc = new Win32Api.Rect();
Win32Api.GetWindowRect(hwnd, ref rc);
using (Pen pen = new Pen(Color.Red, 3))
{
using (Graphics g = Graphics.FromHdc(hDC))
{
g.DrawRectangle(pen, 0, 0, rc.Width, rc.Height); //g.DrawRectangle(pen, 9, 30, rc2.Width - 19, rc2.Height - 40);
}
}
//Win32Api.ReleaseDC(hwnd, hDC);

Ahogy látszik próbáltam, nem a device contextre rajzolni, hanem a client arenába ezért beljebb vettem az értékeket és oda simán bele rajzol. Viszont ha a device contextre, akarom, hogy rajzolja ki a vonalakat, akkor nem hajlandó megcsinálni, minhta alá rajzol vagy rá se rajzolná nem tudom.

Próbáltam RelesaeDC-vel és nélkül is, de egyik se segített.

Nagyon örülnék egy kis segítségnek mert nem igazán tudok tovább jutni és fontos lenne!

Előre is köszönöm szépen!

(#1211) Bumbi0


Bumbi0
csendes tag

Ha bepipálom a compatibilitynál, hogy "Disable Desktop Composition", akkor megcsinálja, tehát körbe rajzolja az egész ablakot!

Hogy tudom megoldani, hogy ne kelljen Leállítani a Desktop Composition-t?

(#1212) Bumbi0


Bumbi0
csendes tag

DwmSetWindowAttribute a megoldás, ennek a beálltásában tud valaki segiteni?

(#1213) Moneo


Moneo
tag

Sziasztok!
Egy igen kezdő kérdéssel fordulnék hozzátok.
Vkit kérek világítson rá az abstract osztályok potenciáljára :)

Kezdő szinten nem fogom h miért jó hogy létrehozok egy "fantom" osztályt, amiből származtatok... amit így elérek nem pont ugyan így megtehetnem ha az alap osztályban hoznám létre a később overriedolt metodusokat?

Tudom h ez így nem igaz [ha így lenne nyilván nem találták volna ki az abstract osztályt :)] , és nyilván én nem látom a fától a mókust, de ezért kérek egy lámpa kapcsolást :D
Köszönöm.

(#1214) ArchElf válasza Moneo (#1213) üzenetére


ArchElf
addikt

Ilyenekkel akkor érdemes "vacakolni" ha valamit nem egyszer szeretnél/kell megcsinálni, hanem az adott dolgot többféleképp is lehet (kell) implementálni, de szeretnéd egyszerűen és szabványosan kezelni őket.
Erre példa a System.IO.Stream osztály. Sok implementációja létezik, de az alapvető funkciókat mindegyik leszármazottnak (így vagy úgy) meg kell valósítania.

A kezelésnél tehát nem azt fogod előírni, hogy a függvényeknek a bemenete, vagy kimenete az adott leszármazott osztály, hanem az ős (fantom) osztály.

AE

[ Szerkesztve ]

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#1215) Vasinger! válasza bpx (#1208) üzenetére


Vasinger!
nagyúr

Ezt írtad, hogy:

string s2 = s[0].ToString().ToUpper() + s.Substring(1);

Azt nem értem, hogy az s után az a [0] mi? Ilyet még sosem láttam. :F
És egyáltalán a To.String fv az mi is? A könyvemben nincs is benne.

[ Szerkesztve ]

(#1216) ArchElf válasza Vasinger! (#1215) üzenetére


ArchElf
addikt

Milyen könyved van? A ToString() fv az Object-től van örökölve, minden osztálynak van ilyen függvénye (implementáció függó, mit csinál).
A másik amit kérdeztél az s[0].
A string objektum értelmezhető (alapértelmezetten konvertálható) char[] -ként is,
tehát az s[0] az s string első karaktere char-ként. Zért kell a ToString(), mert a char és string objektumok konvertió nélkül nem fűzhetők össze. A char.ToString() string-é alakítja char-t.
Remélem elég érthető voltam...

AE

[ Szerkesztve ]

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#1217) bpx válasza ArchElf (#1216) üzenetére


bpx
őstag

annyit tennék még hozzá, hogy a ToString() bizonyos esetekben automatikusan meghívódik, és char + string összefűzésénél még ki sem kellene írni, viszont ToUpper() függvénye (ami nagybetűssé alakít) csak stringnek van, char-nak nincs :)

[ Szerkesztve ]

(#1218) Vasinger!


Vasinger!
nagyúr

Köszönöm a segítséget mindkettőtöknek, sajna van amit nem értek, nagyjából átjött. :D

(#1219) Gregorius válasza bpx (#1217) üzenetére


Gregorius
őstag

viszont ToUpper() függvénye (ami nagybetűssé alakít) csak stringnek van, char-nak nincs
De van neki, csak nem c.ToUpper(), hanem Char.ToUpper(c)

(#1220) bpx válasza Gregorius (#1219) üzenetére


bpx
őstag

igaz, arra nem gondoltam :)

(#1221) Moneo válasza ArchElf (#1214) üzenetére


Moneo
tag

koszonom :R

(#1222) Moneo


Moneo
tag

polimorfizmust vki ide írná saját szavaival? :R

(#1223) ArchElf válasza Moneo (#1222) üzenetére


ArchElf
addikt

Szerintem pont azt írtam le abban a posztban, amit te az előződben megköszöntél...

AE

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#1224) Moneo válasza ArchElf (#1223) üzenetére


Moneo
tag

azt hittem hogy az a valasz a poliformizmusnak csak egy reszhalmaza, es nem az egesze.
kicsit kacifantosabb és rejtelyesebb dolgot sejtettem mogotte.

(#1225) sunsaw


sunsaw
tag

Sziasztok!

Nekiálltam szoftvert fejleszteni (de tanuló cipoben járok még), a segítségetek szeretném kérni!

Arról van szó, hogy csináltam egy ablakot, amiben a paraméterek megadása után nekiáll a program egy SQL kapcsolatot ellenorizni... Ehhez irtam egy disableControls() metodust, ami leutanozza az SQL Management Studio kapcsolodasi ablakat. Azonban, hiaba teszem a disableControls metodust (leszurkiti a lapon talalhato gombokat es controlokat a kapcsolodas tesztje alatt) a testConnection() metodus ele (ezen utobbi raprobal a DB-re, bool=lal ter vissza: true ha siker, false ha nem), a gombok es textbox-ok csak akkor lesznek hajlandoak elszurkulni, ha mar megvan a testConnecion metodus viszateresi erteke, es nem ertem, hogy miert. Probalkoztam a controlokat tartalmazo grid-en frissitest lekerni, de akkor is ez volt. Ugyanigy, a StatusBar-on sem jelentkezik a "Testing connection" felirat, valamiert nem tortenik meg a controlok update-je a kapcsolat felepitese elott. Hasonlo modon a Connect gombom is csunyan "lefagy" (benyomva marad, mint egy beragadt billentyu) amig az SQL szerver nem ter visza vmi ertekkel. A kritikus kod pedig:

private void ConnectButton_Click(object sender, RoutedEventArgs e)
{
connectStatusBar.Items[0] = "Testing connection...";
DisableControls();
if(TestConnection(serverNameComboBox.Text, databaseNameComboBox.Text, loginTextBox.Text, passwordBox.Password))
{
connectStatusBar.Items[0] = "Connecting...";
// TODO: implementation
}
else
{
connectStatusBar.Items[0] = "Connection failed.";
EnableControls();
}
}

Otlet?

[ Szerkesztve ]

Windows Phone 7 Developer

(#1226) Lortech válasza sunsaw (#1225) üzenetére


Lortech
addikt

a gombok es textbox-ok csak akkor lesznek hajlandoak elszurkulni, ha mar megvan a testConnecion metodus viszateresi erteke

Miből jött le, hogy már megvan adott pillanatban a testConnection visszatérési értéke, hogy lehet meg a visszatérési értéke, ha elvileg meg sem hívtad?
Ránézésre szerintem nem a bemásolt kódban keresendő a megoldás, hanem valami olyan kódról, amiről nem tudod, hogy hamarabb fut le, mint gondolnád, pl. static vagy konstruktorok, vagy el elfelejtett metódus hívás. testConnection-re mehetne egy method breakpoint és hívási fát meg kéne nézni.

Thank you to god for making me an atheist

(#1227) Lortech


Lortech
addikt

Még egyszer elolvasva úgy tűnik, hogy azt írod, amit szemmel tapasztaltál, nem pedig ami ténylegesen a kódban történik, szóval az lehet inkább, hogy a controlodnak még nem voltl ideje frissülnie, mikor már meghívtad a blokkoló db queryt. A disablecontrols után hívhatnál a controlra egy Update-et, hogy igazold ezt. Ha megtörténik a GUI-n a változás, akkor ez a gond, és külön threadben kéne kezelni a gui-t és az adatbázis lekéréseket.

Thank you to god for making me an atheist

(#1228) x007 válasza sunsaw (#1225) üzenetére


x007
tag

A problémádat megoldja, hogyha a DisableControls() után meghívod a Application.DoEvents() metódust. Az ilyen megoldásokat azonban, ha lehet, kerüljük. Általánosságban elmondható, hogy időigényes feladatokat nem hajtunk végre a GUI szálon (ilyen egy vezérlő eseménye is, pl: Click), hanem egy új szálat hozunk létre, hogy a végrehajtás a háttérben történjen. Ezt könnyen megteheted a BackgroundWorker komponens segítségével, elég sok problémát levesz a programozó válláról.

Valami ilyet kéne csinálnod:
private void button1_Click(object sender, EventArgs e)
{
DbDetails arg =
new DbDetails
{
Server = ...,
Database = ...,
User = ...,
Password = ...,
};

connectStatusBar.Items[0] = "Testing connection...";
DisableControls();

backgroundWorker1.RunWorkerAsync(arg);
}

private class DbDetails
{
public string Server { set; get; }
public string Database { set; get; }
public string User { set; get; }
public string Password { set; get; }
}

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
DbDetails arg = e.Argument as DbDetails;

e.Result = TestConnection(arg.Server, arg.Database, arg.User, arg.Password);
}

private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
if (e.Error != null && (bool)e.Result)
{
//Sikerult csatlakozni
//TODO: Impl
}
else
{
//Nem sikerult csatlakozni
//TODO: Impl
}

}

A DoWork eseménykezelőbe kell helyezned a kódot, amit a háttérben szeretnél végrehajtani. Fontos, hogy ebben nem hivatkozhatsz a Form-on található vezérlőkre szinkronizációs problémák miatt. Ezért van szükség jelen példában a DbDetails segédosztályra.

A RunWorkerCompleted eseménykezelő a feladat végrehajtása után mindig végrehajtódik. Ha valamilyen kivétel keletkezett, akkor azt a e.Error tulajdonságból kiolvashatod. Az e.Result tulajdonságból a DoWork eseménykezelőben beállított visszatérési érték olvasható ki.

[ Szerkesztve ]

(#1229) sunsaw


sunsaw
tag

Kiprobaltam, amit mondtatok. Nos, oda jutottam, hogy tettem egy breakpoint-ot még a testConnection metodus ele, es csodak csodja, az tortent, hogy nem tortent semmi! Amikor rakattinto a Connect gombra, hiaba all meg a breakpointon, nem fut le a DisableControls, illetve, lefut, de az ablak lefagy total, még mozgatni sem lehet, sot a controlok sem szurkulnek el. Megneztem a static dolgot, egy darab nincs benne, az egy szem konstruktoromban meg nincs ilyesmi. Bemasolom az egesz kodot, hatha vki okosabb lesz (egyebkent WPF-ben keszul a dolog, szoval adok XAML-t is):

using System;
using System.Windows;
using System.Data.SqlClient;

namespace SunSaw_Dictionary.Windows
{
/// <summary>
/// Interaction logic for ConnectDictionaryWindow.xaml
/// </summary>
public partial class ConnectDictionaryWindow
{
public ConnectDictionaryWindow()
{
InitializeComponent();
serverNameComboBox.Text = // ezt azert nem masolom be, itt van egy string
databaseNameComboBox.Text = // ezt azert nem masolom be, itt van egy string
loginTextBox.Text = // ezt azert nem masolom be, itt van egy string
passwordBox.Password = // ezt azert nem masolom be, itt van egy string
connectStatusBar.Items.Add("Ready.");
}

private void CancelButton_Click(object sender, RoutedEventArgs e)
{
Close();
}

private void ConnectButton_Click(object sender, RoutedEventArgs e)
{
connectStatusBar.Items[0] = "Testing connection...";
DisableControls();
if(TestConnection(serverNameComboBox.Text, databaseNameComboBox.Text, loginTextBox.Text, passwordBox.Password))
{
connectStatusBar.Items[0] = "Connecting...";
// TODO: implementation
}
else
{
connectStatusBar.Items[0] = "Connection failed.";
EnableControls();
}
}

private void DisableControls()
{
serverNameComboBox.IsEnabled = false;
databaseNameComboBox.IsEnabled = false;
loginTextBox.IsEnabled = false;
passwordBox.IsEnabled = false;
}

private void EnableControls()
{
serverNameComboBox.IsEnabled = true;
databaseNameComboBox.IsEnabled = true;
loginTextBox.IsEnabled = true;
passwordBox.IsEnabled = true;
}

private static bool TestConnection(string serverName, string databaseName, string login, string password )
{
bool retVal = true;
var sqlConn = new SqlConnection
{
ConnectionString =
"Data Source=tcp:" + serverName + ";Initial Catalog=" + databaseName +
";User ID=" + login + ";Password=" + password + ";"
};
try
{
sqlConn.Open();
}
catch (Exception)
{
// TODO: exceptions?
retVal = false;
}
finally
{
sqlConn.Close();
}
return retVal;
}
}
}

es a XAML:

<Window x:Class="SunSaw_Dictionary.Windows.ConnectDictionaryWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Connect" Width="400" Height="269" ResizeMode="NoResize">
<Grid Name="LayoutRoot" Background="#FFF0F0F0">
<TextBlock HorizontalAlignment="Left" Margin="12,12,0,0" Name="serverNameTextBlock" Text="Server name:" Height="23" VerticalAlignment="Top" />
<ComboBox Height="23" Margin="123,12,12,0" Name="serverNameComboBox" VerticalAlignment="Top" IsEditable="True" />
<TextBlock Height="23" HorizontalAlignment="Left" Margin="12,41,0,0" Name="databaseNameTextBlock" Text="Database name:" VerticalAlignment="Top" />
<ComboBox Height="23" IsEditable="True" Margin="123,41,12,0" Name="databaseNameComboBox" VerticalAlignment="Top" />
<TextBlock Height="23" HorizontalAlignment="Left" Margin="41,70,0,0" Name="loginTextBlock" Text="Login:" VerticalAlignment="Top" />
<ComboBox Height="23" Margin="146,70,12,0" Name="loginTextBox" VerticalAlignment="Top" IsEditable="True" />
<TextBlock Height="23" HorizontalAlignment="Left" Margin="38,99,0,0" Name="passwordTextBlock" Text="Password:" VerticalAlignment="Top" />
<PasswordBox Height="23" Margin="146,99,12,0" Name="passwordBox" VerticalAlignment="Top" PasswordChar="●" /> <Border BorderBrush="DarkGray" BorderThickness="1" Margin="12,0,12,61" Name="border1" Height="1" VerticalAlignment="Bottom" />
<Button Content="Connect" Margin="0,0,93,29" Name="connectButton" Click="ConnectButton_Click" Height="23" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="75" />
<Button Content="Cancel" Margin="0,0,12,29" Name="cancelButton" Click="CancelButton_Click" Height="23" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="75" />
<StatusBar Name="connectStatusBar" Height="23" VerticalAlignment="Bottom" Visibility="Visible" Background="{Binding ElementName=LayoutRoot, Path=Background.Color}" />
</Grid>
</Window>

Remelem vki tud segiteni... termeszetesen a kodom kicsit sem biztonsagos, egyelore nem ezen van a hangsuly, de minden otletet szivesen varok, termeszetesen a szálas megoldást is merlegelni fogom,de ugy latszik mashol van a kutya elasva, csak en nem tudom hol...

[ Szerkesztve ]

Windows Phone 7 Developer

(#1230) x007 válasza sunsaw (#1229) üzenetére


x007
tag

Jaaaa, WPF-ben nincsen gyári DoEvents, viszont van workaround:

private void button1_Click(object sender, RoutedEventArgs e)
{
button1.IsEnabled = false;

WpfApplication.DoEvents();
Thread.Sleep(3000);

button1.IsEnabled = true;
}


/// <summary>
/// Designates a Windows Presentation Foundation application model with added functionalities.
/// </summary>
public class WpfApplication : Application
{
private static DispatcherOperationCallback exitFrameCallback = new
DispatcherOperationCallback(ExitFrame);

/// <summary>
/// Processes all UI messages currently in the message queue.
/// </summary>
public static void DoEvents()
{
// Create new nested message pump.
DispatcherFrame nestedFrame = new DispatcherFrame();

// Dispatch a callback to the current message queue, when getting called,
// this callback will end the nested message loop.
// note that the priority of this callback should be lower than the that of UI event messages.
DispatcherOperation exitOperation = Dispatcher.CurrentDispatcher.BeginInvoke(
DispatcherPriority.Background, exitFrameCallback, nestedFrame);

// pump the nested message loop, the nested message loop will
// immediately process the messages left inside the message queue.
Dispatcher.PushFrame(nestedFrame);

// If the "exitFrame" callback doesn't get finished, Abort it.
if (exitOperation.Status != DispatcherOperationStatus.Completed)
{
exitOperation.Abort();
}
}

private static Object ExitFrame(Object state)
{
DispatcherFrame frame = state as DispatcherFrame;

// Exit the nested message loop.
frame.Continue = false;
return null;
}
}

Megjegyzem, hogy ez továbbra se fogja teljes mértékig megoldani a problémát, mert az ablak ugyanúgy meg fog fagyni a DB kapcsolat tesztelésekor. (WinForms esetén is így lenne) Szóval mindenképpen javaslom a BackGroundWorker használatát.

(#1231) sunsaw válasza x007 (#1228) üzenetére


sunsaw
tag

Cannot resolve symbol 'backgroundworker' forditasi hiba. Mit hagytam ki? Atneztem, elvileg jol modositottam es megis... kell vmi using?

Windows Phone 7 Developer

(#1232) x007 válasza sunsaw (#1231) üzenetére


x007
tag

(#1233) sunsaw válasza x007 (#1232) üzenetére


sunsaw
tag

Meglesz.

Windows Phone 7 Developer

(#1234) sunsaw válasza x007 (#1135) üzenetére


sunsaw
tag

File has been removed... fel tudnad tenni ujra?? Koszi!

Windows Phone 7 Developer

(#1236) sunsaw válasza x007 (#1235) üzenetére


sunsaw
tag

Megneztem. Koszonom. Igazabol kicsit furcsa volt, mert WinForms-os, en meg azzal eletemben nem foglalkoztam, csak WPF-fel :) Azt mondjak, az a jovo... mire odajutok, szerintem jelen lesz :)

Windows Phone 7 Developer

(#1237) sunsaw


sunsaw
tag

Kovetkezo kerdesem: Sikeresen letrehoztam az adatbazis kapcsolatot, bezartam a Connect ablakot egy Close()-sal A ConnectWindow kodjabol. (ahol a kapcsolodashoz szukseges parametereket fogadom). Ez utan hogy menjek tovabb? Megis hogy frissitsem a MainWindow-n levo adatokat? (Elmondom mit csinalok, angol magyar szotar program, de az adatbazis SQL szerveren lesz tarolva.)

Windows Phone 7 Developer

(#1238) Gregorius válasza sunsaw (#1236) üzenetére


Gregorius
őstag

A DataSet viszont a múlt, úgyhogy javaslom, ismerkedj meg néhány korszerűbb adatelérési technológiával.

(#1239) sunsaw válasza Gregorius (#1238) üzenetére


sunsaw
tag

Kulcsszavak? Merre túrjak? :)

Windows Phone 7 Developer

(#1240) x007 válasza sunsaw (#1239) üzenetére


x007
tag

Linq to SQL
Entity Framework

Ezek nem alternatívái a DataSet-nek, mert kapcsolatalapú adatelérést biztosítanak ellentétben a DataSet-tel, ami kapcsolat nélküli adatelérést biztosít. Keress rá, hogy ezek mit jelentenek, nem akarok regélni :).

Mérlegelni kell, hogy az alkalmazásodnak melyik jó. Én úgy gondolom, hogy egy szótár szoftvernek fölösleges betöltenie az összes szót a memóriába, így érdemes használni a fent említett két technológia közül az egyiket. Linq to SQL-t szoktam használni, de a jövő egyértelműen az Entity Framework (mondjuk jelen állapotáról nem sok jót hallottam eddig :) ).

(#1241) x007 válasza sunsaw (#1237) üzenetére


x007
tag

Tanulmányozd a Binding objektumot... Nagyon sokmindent meg lehet vele csinálni.
http://www.c-sharpcorner.com/UploadFile/mahesh/WPFDataBinding08012008233147PM/WPFDataBinding.aspx

(#1242) Gregorius válasza x007 (#1240) üzenetére


Gregorius
őstag

A LINQ to SQL és az Entity Framework is ugyanúgy disconnected modellben dolgozik, mint a datasetes megközelítés. Maga az adatbázishoz kapcsolódás valóban kevésbé explicit, de architekturálisan ugyanaz a felállás: kliens kapcsolatot megnyitja, küldi a query szöveget, kapja az adatot, kapcsolatot lezárja.
A lényegi különbség ott van, hogy a kliensen hogy áll össze a command text illetve hogy a kapott adatból mi keletkezik.
Az EFv4 (végleges változat két hónap múlva) már kimondottan jól használható.

(#1243) x007 válasza Gregorius (#1242) üzenetére


x007
tag

DataSet használatakor az adatbázist cacheljük a memóriába, a lekérdezések a memóriában hajtódnak végre. EF és L2S használata esetén a lekérdezések mindig az adatbázis szerveren hajtódnak végre, ezért én nem sorolnám ezeket a kapcsolat nélküli adateléréshez. (sztem valahol a kettő között van :) ) Az adatmanipuláció mechanizmusa viszont valóban hasonló.

(#1244) sunsaw


sunsaw
tag

Van egy About Window-om. Ezt szepen megnyitom showdialog-gal, elrejtem talcarol, hogy ne ketto latszon. Eddig szuper. A Baj akkor kezdodik, ha valaki ALT+TAB-bal valt alkalmazasok kozott, mert elofordulhat, hogy ravalt a MainWindow-ra, es azt hiszi kifagyott, ha nem veszi eszre hogy az About nyitva van (az atlaguser kepes erre). Ezt hogy szokás csinálni szépen, egyszeruen és elegánsan (lehet hogy tokmashogy)? (WPF, C#)

Windows Phone 7 Developer

(#1245) ArchElf válasza sunsaw (#1244) üzenetére


ArchElf
addikt

Ehh, WPF... visszavonva.
http://msdn.microsoft.com/en-us/library/aa972124.aspx

AE

[ Szerkesztve ]

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#1246) sunsaw válasza ArchElf (#1245) üzenetére


sunsaw
tag

Koszi. Megneztem, belekotortam forrásba is, és teljesen úgy csinálják, ahogy én. Rendes uj ablak, ShowInTaskbar false, ShowDialoggal megnyitni. De viszont nekik nem jelenik meg dupla az ALT-TAB-ra... nem tudom, miert van ez igy, amugy konvertalni kellett a projektet, mert en VS2010-et hasznalok, ez szamithat valamit? Megnézné nekem valaki, hogy melyik az a kulcspont, ami miatt nekem dupla ablak van a taszkváltásnál, nekik meg csak egy? Nincs otletem sem, olyan tul egyszeru a kod, hogy nem talalom a lenyeget meg sajnos, lehet, hogy nem jo pontra koncentralok es elkeruli valami a figyelmem :(

Sot, meg jobbat mondok, ezt csinalom: elinditom a programot, megnyitom a dialogus ablakot, ALT-TAB-nal csak a dialogusablak latszik. Ha elvaltok rola, majd vissza ALT-TAB-bal, akkor csak a dialogusablak jelenik meg, a foablak nem. Ha azt csinalom, hogy elinditom, megnyitom a dialogusablakot, es elvaltok, majd talcan kattintok a feladatra, akkor a foablak jon be, es nem a dialogusablak (szimulalt lefagyas, ami nem jo!). Mit kene tenni?

[ Szerkesztve ]

Windows Phone 7 Developer

(#1247) ArchElf válasza sunsaw (#1246) üzenetére


ArchElf
addikt

Ez valami desktop bug lehet. Próbáld ki, hogy először mindent eltüntetsz a ShowDesktop tálca menüvel, és utána az ALT+TAB vagy a tálcaikonra kattintással az ablak megnyitást.

AE

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

(#1248) Gregorius válasza x007 (#1243) üzenetére


Gregorius
őstag

EF és L2S használata esetén a lekérdezések mindig az adatbázis szerveren hajtódnak végre
A lekérdezés ott hajtódik végre, ahol én mondom neki. Ugyanúgy, ahogy a TableAdapternél is megmondom, hogy milyen lekérdezést futtasson a szerveren, aztán a helyi adatokat tologatom. Aztán ha valaki beleesik abba a hibába, hogy a lekérdezést és nem a lekérdezés eredményét köti hozzá az objektumaihoz, magára vessen. Olyasfajta dedikált repository, mint a tableadaptehez a dataset, ami tárolja az eredményt valóban nincs EF és L2S alatt, helyette bármilyen beépített vagy saját gyártású listába beleküldheted az eredményt.

(#1249) sunsaw válasza ArchElf (#1247) üzenetére


sunsaw
tag

Kiprobaltam. Alkalmazas indit, majd ShowDesktop menu. Ha rakattintok az ikonra a talcan, akkor a foablak jelenik meg (hibasan, mert a megnyitott dialogusablaknak kellene), es ha ezutan koztvetlenul AL+TAB-olok, akkor ott meg a dialogusablak van kirakva kiskepnek es az is jon be. Nem ertem en ezt :F NEm hiszem, hogy desktop bug, mert az MS-nek mukodik, de egyszeruen nem latom, mi az, ami nalam hianyzik, lehet vmi titkos hidden focus event? :F

Windows Phone 7 Developer

(#1250) ArchElf válasza sunsaw (#1249) üzenetére


ArchElf
addikt

Na, megvan a fórum.
Nem hiszem, hogy a te programodban lenne a hiba... Láttam ezt már más alkalmazásnál is (pl ImgBurn). De megnézem mindjárt nálam is egy gyors mintaprojekttel (VS.NET 2008)

AE

Csinálok egy adag popcornt, és leülök fórumozni --- Ízlések és pofonok - kinek miből jutott --- Az igazi beköpőlégy [http://is.gd/cJvlC2]

Copyright © 2000-2024 PROHARDVER Informatikai Kft.