2

すでに DB にバインドされているデータグリッドがあります。ボタンがクリックされたときにデータグリッドにデータを表示する方法は?

これが私が試したことです...

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        SqlDataAdapter da = null;
        DataSet ds = null;
        try
        {
            da = new SqlDataAdapter("select * from Major", @"Data Source=Student;Initial Catalog=StudDB;Integrated Security=true;Persist Security Info=True;");
            da.SelectCommand.CommandTimeout = 100000;
            ds = new DataSet();
            da.Fill(ds);
            dataGrid1.ItemsSource = ds.Tables[0].DefaultView;
        }
        catch (SqlException ex)
        {
            throw ex;
        }
    }
4

2 に答える 2

2

これが解決策です。返信してくれた他の人に感謝します!

    SqlConnection con;
    public MainWindow()
    {

        InitializeComponent();
        try
        {
            con = new SqlConnection("Data Source=ComputerName;Initial Catalog=YourDBName;Persist Security Info=True;");
            con.Open();
        }
        catch (Exception ex)
        {

            throw ex;
        }
    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        SqlDataAdapter da = null;
        DataSet ds = null;
        try
        {
            da = new SqlDataAdapter("select * from YourTableName",con);
            da.SelectCommand.CommandTimeout = 100000;
            ds = new DataSet();
            da.Fill(ds);
            dataGrid1.ItemsSource = ds.Tables[0].DefaultView;
        }
        catch (SqlException ex)
        {
            throw ex;
        }

Xaml で Itemsource と AutoGenerateColumns を設定します。

  <DataGrid ItemsSource="{Binding YourTableName}" AutoGenerateColumns="True" Grid.Column="1" Height="423" HorizontalAlignment="Left" Margin="22,24,0,0" Name="dataGrid1" VerticalAlignment="Top" Width="591" />
于 2012-12-13T11:26:38.220 に答える
1

ボタンをクリックすると値が変化するブールプロパティを作成できます。次に、このプロパティをDataGridのVisibilityプロパティにバインドします。BooleanToVisibilityConverterを使用して値を変換します。

ブールプロパティが変更されたときにビューに通知することを忘れないでください(NotifyPropertyChanged-Event)。

于 2012-12-13T10:10:15.240 に答える