5

WPF の DataGrid を MS SQL データベースのテーブルにバインドしようとしています。

1)最初に、次のようにApp.configファイルを作成しましたrrr

    <connectionStrings> 
      <add name="ConString" connectionString="Data Source=MYDataSB\SQLExpress; 
       User Id=sa;Password=gm03C3; Initial Catalog=MYDB;">
    <connectionStrings/>

2) 次に、フォームに grdEventLog という名前のデータグリッドを追加しました

      <Grid>
        <DataGrid Name="grdEventLog"/>
      </Grid>

3) 次に、このコードを次のように MainWindow.xaml.cs ファイルに追加しました。

     using System.Data;
     using System.Data.SqlClient;
     using System.Web;

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        FillDataGrid();
    }

    private void FillDataGrid()
    {
        string ConString = ConfigurationManager.ConnectionStrings["ConString"].ConnectionString;
        string CmdString = string.Empty;
        using (SqlConnection con = new SqlConnection(ConString))
        {
            CmdString = "SELECT Server,Date,Typ,Msg FROM EventLog";
            SqlCommand cmd = new SqlCommand(CmdString, con);
            SqlDataAdapter sda = new SqlDataAdapter(cmd);
            DataTable dt = new DataTable("EventLog");
            sda.Fill(dt);
            grdEventLog.ItemsSource = dt.DefaultView;
        }
    }

これらのエントリをすべて入力した後、ConfigurationManager で「現在のコンテキストに名前が存在しません」というエラーが表示されます。

このエラーを克服するために、参照 cfgmgr32.dll を追加しようとしています。しかし、それは受け入れられていません。誰かがこのエラーを克服することを提案できますか?!

WPF でデータバインディングにアプローチするための別の提案も歓迎します。

4

1 に答える 1

1

問題はデータバインディング自体にはありません。設定ファイルまたはConnectionStrings[]で使用されているキーにタイプミスがあるようです。ここにstacktraceを使用してエラー全体を投稿すると便利です。PS設定ファイルにタイプミスがあります。すべきではない

<connectionStrings> 
      <add name="ConString" connectionString="Data Source=MYDataSB\SQLExpress; 
       User Id=sa;Password=gm03C3; Initial Catalog=MYDB;">
    <connectionStrings/>

しかし

<connectionStrings> 
      <add name="ConString" connectionString="Data Source=MYDataSB\SQLExpress; 
       User Id=sa;Password=gm03C3; Initial Catalog=MYDB;">
    </connectionStrings>

最後の行を参照してください。

于 2012-12-03T14:53:56.500 に答える