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