Új hozzászólás Aktív témák

  • 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...

Új hozzászólás Aktív témák