- Megvan, milyen chipet használ a Pura 80 Ultra
- Bemutatkozott a Poco X7 és X7 Pro
- Nem várt platformon a OnePlus Nord 5
- Samsung Galaxy Watch6 Classic - tekerd!
- Milyen okostelefont vegyek?
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Honor 400 Pro - gép a képben
- Nothing Phone (3a) és (3a) Pro - az ügyes meg sasszemű
- One mobilszolgáltatások
- Milyen GPS-t vegyek?
Új hozzászólás Aktív témák
-
bpx
őstag
válasz
ArchElf #1299 üzenetére
nem is kellettek ide napok
bme msdnaa -
Gregorius
őstag
Most már van bolti változat is. Le is tölthető, de értelemszerűen csak a trial.
-
ArchElf
addikt
-
Asesino
csendes tag
válasz
ArchElf #1290 üzenetére
Köszönöm a segítséget, igazából nem az sp6 kellene hanem együtt a visual studio 6 sp6. Illetve az msdn library is kellene ehhez a verzióhoz. A 2010 rc verziót kihozza full iso-ba de a régebbi verzókat nem találom. Lehet én vagyok a lámer de ha esetleg meg lenne ez a link azt megköszönném.
-
Asesino
csendes tag
Sziasztok !
A microsoft oldalról kellene az eredeti iso link Microsoft Visual Studio Enterprise Edition 6.0 SP6. Előre is kösz
-
fLeSs
nagyúr
lám, mit találtam [link]
-
fLeSs
nagyúr
válasz
Gregorius #1285 üzenetére
Köszi az infót.
beszéltem Mlacával, ő VS-ben programozik és asszonta, hogy még sosem vette észre, hogy a HDD lassúsága miatt lenne lassú a fordítás, igaz ő nem dolgozik baromi nagy projekteken.
Akkor ez a teszt kilőve. Ha létezik is ilyen probléma, akkor sem tudnám letesztelni, mert ahhoz vkinek adnia kéne egy nagy projektet. -
Gregorius
őstag
Túl sokat nem tudok segíteni, csak egy kicsit itt-ott.
A cold-start build valóban durván darálja a vinyót, a másodiknál viszont már sokminden a system cache-ből megy. A build enginek ráadásul ritkán használnak több magot - már ahol ez egyáltalán lehetséges - úgyhogy gyanítom, hogy itt a dolog inkább CPU limitessé válik.
C#, VB.NET illetve egyéb CIL-re forduló projekt majdnem biztosan felejtős. Sok olyan projekt még nem fordult meg a kezem alatt, ami egy perc alatt ne tudna könnyedén fordulni. Natív C++ alá viszont nagyságrendekkel tovább tartó buildeket is lehet találni. Érdemes valamelyik népszerűbb szabad szoftver csomagot választani, pl. OpenSSL, Apache httpd stb. Ezekben általában elég részletes dokumentáció is van, hogy mi kell a fordításhoz és hogyan kell lefordítani.
Egyébként szerintem leginkább a nagyon sok (>10000) nagyon kis fájl (1-100k) olvasása/írása vegyesen tesztesetre hasonlít a terhelés. Ha még erősen fragmentált is a vinyó - ami a fordítás közben keletkező sok kis fájllal könnyen kialakul, bár ez erősen fájlrendszer- és kihasználtságfüggő - akkor még jobban köhögnek a sok seekeléstől hagyományos HDD-k.
-
fLeSs
nagyúr
Lenne egy kérdésem/kérésem.
Ahogy olvasgattam a neten, kiderült, hogy egy program/projekt lefordítását a HDD szokta a legjobban visszafogni. Éppen SSD/HDD-teszteket készítek és jó lenne, ha vki tudna nekem segíteni összehozni egy tesztmetodikát a vinyók sebességének lemérésére visual studio alatt.
Csak annyit kéne segíteni, hogy elmondjátok, hogy mit installáljak fel és adnátok nekem egy projektet amit le kell fordítani, és a fordítás idejét lemérném a különböző vinyókkal/SSD-kkel.
Ennyi.
Alapvetően ezt nem magam miatt csinálom, mivel nekem nem hiányzik ez, én nem vagyok programozó, szóval számítok rátok.Ha nem lesz belőle semmi, akkor nem lesz belőle semmi. Ilyen teszteket még nem láttam egyik hardveroldalon sem, szóval sztem érdemes lenne segítenetek.
Előre is köszi.szerk: egy olyan projekt kéne, ami egy 7200-as vinyón 4-5 perc alatt fordul le.
-
kovsol
titán
valaki tudna nekem abban segíteni, hogy asp.net ben?
van egy AccessDataSource -m amihez szeretnék új adatoat hozzáadni amik két textboxban találhatóak és gombnyomásra adja hozzá őket. [link] itt próbáltam segítséget találni, erre az insert.aspx file -t már nem tudom letölteni
pedig abban rejlene szerintem a megoldás számomra
-
Khelben
nagyúr
Az első nap még elment, bár enyhén reklámszagú volt, "kicsit mindenből", hogy lásd, miket tud a dotnet. A második napot csak a feléig bírtam, a gyakorlati rész abszolút nem kötött le, kivetítőn néztél egy embert, aki programot ír, de hogy mit miért, arról nem nagyon árult el infókat... Összességében akkor érdemes elmenni, ha épp nagyon ráérsz, esetleg devportalos pólót akarsz szerezni.
-
snow.man
tag
-
snow.man
tag
Sziasztok!
Olyan problémám van 2-es dotnetben, hogy berántok két web referenciát két különböző wsdl alapján, de a legenerált osztályok között egy csomó közös van, amit szeretnék is "közösként" használni (ergo ne legyen redundancia). Sok osztály teljes egészében ugyanaz, csak ugye külön névtérbe kerülnek, mivel két külön web referenciában vannak. Hogy tudnám megoldani, hogy az egyik web service metódusaival tudjam használni a másik web service típusait és fordítva? Mert az nem túl elegáns megoldás, hogy propertyket másolgatok manuálisan...
Előre is köszi a segítséget!
-
Tomor
csendes tag
Sziasztok!
Egy kérésem lenne.
Adodott egy adatnyilvántartás jellegű programkészítési feladatom, amit Visual C# 2008 -ban MySQL adatbázissal kell megcsinálni. Mivel Visual C# -ben ilyen jellegű
feladatot eddig nem csináltam ( csak PHP-val), így most elég kezdő vagyok ezen a téren.
Addig már eljutottam, hogy letöltöttem hozzá a MySQL Connector/ODBC -t. illetve a
MySQL Connector/Net -t. és az interneten utánanéztem tutoriáloknak, így egy egyszerű
localhost-os táblalekérdezést már összeraktam, de még ebben a témában túl sok kérdésem maradt.
Szívessen igénybevennék ebben a rész témakörben, egy pár órás személyes oktatást valakitől, akinek ezen a területen már van valami gyakorlata. -
kovsol
titán
Valaki volt ezen a Microsoft: 16 órás ingyenes ASP.NET 3.5 előadáson ?
Most én a Pécsire jelentkeztem ami egy 4 órás előadás és 25 óra gyakorlati részből áll.
Kíváncsian várom.[link] -
petersonal
tag
válasz
Gyuri16 #1271 üzenetére
wááá megvan!!
úgy utálom h annyira kis apróságokon annyira sok időt el tudok baszni hogy az nem igaz
dee megvan és neked köszönhetem
igazából már többször megnéztem meg léptettem és most leesett:
seged = tomb[j];
tomb[j] = tomb[j+1];
tomb[j+1] = seged;
Ennyi kellett volna ááá -
Gyuri16
senior tag
válasz
petersonal #1270 üzenetére
ok, eloszor ezt neztem meg, azt hittem a tobbit jol irtad.
szoval a ciklus belseje se jo, a seged valtozodba elteszel egy indexet (j), es ezt irod be a tombodbe, ezzel elrontva ami ott volt. meg kell kulonboztetned a tomb elemeit, es indexeit. probald meg leptetni a programodat es nezd meg, hogy a valtozoidban mi van, es hogyan valtozik.
most megyek buszra, este majd ranezek ha meg nem lesz jo -
Gyuri16
senior tag
válasz
petersonal #1268 üzenetére
a kulso ciklusodban rossz a feltetel, i > 1 jobb lesz
-
petersonal
tag
Hali!
Tudom béna vagyok hogy nem tudom megoldani, de segítsetek, sima buborékos rendezés nem tudom miért nem megy :/int []tomb=new int [4];
for (int i = 0; i <tomb.Length; i++)
{
Console.WriteLine("adj 1 számot:");
tomb[i] = int.Parse(Console.ReadLine());
}
int seged = 0;
for (int i = tomb.Length; i <1; i--)
{
for (int j = 0; j < i-1; j++)
{
if (tomb[j] > tomb[j + 1])
{
seged = j;
j = (j + 1);
tomb[j+1] = seged;
}
}
}
for (int i = 0; i < tomb.Length; i++)
{
Console.WriteLine(" Növekvő sorrenbe rendezve: {0}",tomb[i]);
}
Console.ReadLine(); -
jubilleum
senior tag
Hello!
Érzem hogy nagyon láma kérdésem, de nem jövök rá magamtól.
valamiért nem lép be az ifekbe, és max, min érték nem változik...static void Main(string[] args)
{
int min=8848;
int max = -12000;
int viz=0, fold=0;
int maxviz=0, maxfold=0;
Console.WriteLine("A program a szonár mérési adtait vizsgálja");
Console.Write("Hány mérést vizsgáljak?: ");
int tombhossz=int.Parse(Console.ReadLine());
int[] melyseg = new int[tombhossz];for (int y = 0; y < tombhossz; y++)
{
Console.Write("Add meg a(z) " + y + ". adatot:");
melyseg[y] = int.Parse(Console.ReadLine());
}
for (int i = 0; i < tombhossz; i++)
{
if(melyseg>max)
{
melyseg(i)=max;
}
if(melyseg(i)<min)
{
melyseg(i)=min;
} -
sunsaw
tag
válasz
ArchElf #1261 üzenetére
Igen, mert az emberek tobbsegenek az a baja, hogy a ShowDialog metodus valoban megnyitja dialogus modban az uj ablakot (letre kell hozni egyet feltetlenul, nem letezik Modal Windows vagy hasonlo WPF alatt, nem letezik iylen, mint Control), csak aztan furcsa modon banik a fokusszal (es most finoman fejeztem ki magam, mert eleg idegesito!). De az a vicces, hogy a Microsot SDK Sample-je meg ugy fut, mint ahogy azt el lehet varni, es az is ugyanugy .net 4 alatt. En nem tudom, mi a francot tehetnek ok bele, amitol nekik mukodik, nekem meg nem... direkt teszteltem, az o kodjuk tokeletes, egyetlen fokuszra utalos sort talaltam a kodjukban, ami az enyembol hianyzott szemmel lathatoan, azt atmasoltam, de ugy sem ment (sot MSDN-bol kiderult, az amugyis vmi tok masra van, amit beirtak, de varom a megoldasodat). Amugy igen, VS2010 RC kell hozza, meg esetleg egy JetBrains ReSharper Beta (5-os nightly build beta-t tettem hozza, mert az jo). Ja, IntelliSense PAtch-et rakd fel, kulonben idegbajt kapsz a 10 inditas utan: VS2010RC IntelliSense Patch
-
-
sunsaw
tag
válasz
ArchElf #1254 üzenetére
2010 RC. Eppen ez az, amit mondtam, hogy az SDK peldaban ez a bug nem jon elo, de az alkalmazasomban meg igen. Ugyanigy .net4 alatt is, SDK pelda OKés, szoval nincs ez a hulyeseg, az en alkalmazasomnal viszont mvan, szoval van itt valami megoldas, csak nem tudok rajonni (meg ezek szerint te sem!), hogy mi az.
-
x007
tag
-
D@ni88
addikt
hello.
melyik elemmel lehet a programban füleket létrehozni (c#)? beadandóhoz kellene -
sunsaw
tag
válasz
ArchElf #1247 üzenetére
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
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?
-
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. -
sunsaw
tag
válasz
ArchElf #1245 üzenetére
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?
-
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#)
-
x007
tag
válasz
Gregorius #1242 üzenetére
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ó.
-
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ó. -
x007
tag
Tanulmányozd a Binding objektumot... Nagyon sokmindent meg lehet vele csinálni.
http://www.c-sharpcorner.com/UploadFile/mahesh/WPFDataBinding08012008233147PM/WPFDataBinding.aspx -
x007
tag
Linq to SQL
Entity FrameworkEzek 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
).
-
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.)
-
x007
tag
-
x007
tag
Olvass dokumentációt...
http://msdn.microsoft.com/en-us/library/system.componentmodel.backgroundworker.aspx -
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.
-
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...
-
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.
-
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.
-
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. -
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?
-
Moneo
tag
polimorfizmust vki ide írná saját szavaival?
-
Vasinger!
nagyúr
Köszönöm a segítséget mindkettőtöknek, sajna van amit nem értek, nagyjából átjött.
-
ArchElf
addikt
válasz
Vasinger! #1215 üzenetére
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
-
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
-
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áraKezdő 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
Köszönöm. -
Bumbi0
csendes tag
DwmSetWindowAttribute a megoldás, ennek a beálltásában tud valaki segiteni?
-
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?
-
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!
-
bpx
őstag
válasz
Vasinger! #1207 üzenetére
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
-
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.
-
FehérHolló
veterán
válasz
FehérHolló #1205 üzenetére
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.
-
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.
-
x007
tag
válasz
FehérHolló #1203 üzenetére
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:
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
.
-
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.
-
-
x007
tag
válasz
Briganti #1194 üzenetére
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.
Új hozzászólás Aktív témák
Hirdetés
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- Fujitsu AKCIÓ!!! 14,1"-15,6"FullHD IPS,8.gen.i5,10.gen.i5
- HP Elitebook 840 G3 laptop (14FHD/I5-G6/8GB/256SSD/Matricázott) - Akku X
- Asus Rog Strix Gamer laptop makulátlan állapotban
- ThinkPad T14 Gen4 14" FHD+ IPS érintő Ryzen 5 PRO 7540U 16GB 256GB NVMe ujjlolv IR kam gar
- 16GB-os SODIMM (notebook) DDR4 RAM bazár - nézz be, lesz, ami kell neked!
- BESZÁMÍTÁS! Intel Core i9 9900KF 8 mag 16 szál processzor garanciával hibátlan működéssel
- BESZÁMÍTÁS! SAPPHIRE VEGA 64 8GB HBM2 videokártya garanciával hibátlan működéssel
- ÁRGARANCIA!Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RTX 4060 8GB GAMER PC termékbeszámítással
- Apple Watch SE 2 44mm, Újszerű, 1 Év Garanciával
- Frederick Forsythe: Isten ökle (nem olvasott)
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest