1

Datasetデータベースをメモリにコピーするためにを使用している以下のコードについて、2 つの質問があります。

最初の質問: なぜこのコードを接続に使用できないのだろうか:

connection = new SqlConnection(ConfigurationManager.ConnectionStrings["DALLayer.Properties.Settings.AnimalMotelConnectionString"].ConnectionString);

次のエラー メッセージが表示されます。

オブジェクト参照がオブジェクト インスタンスに設定されていません。

私が見逃したことを説明してください。app.config で名前文字列を使用します。現在、私の接続は以下のコードのようにハードコーディングされており、機能しています。

2 番目の質問: データセットを使用する場合、自分が持っている sql コマンド内でしか読み取りと実行ができないと思います。変更、追加、または削除したい場合、別の SQL コマンドと新しいデータセットを使用する必要がありますか?

 public void Test()
    {
        SqlConnection connection;
        SqlCommand command;
        SqlDataAdapter adapter = new SqlDataAdapter();
        DataSet dataset = new DataSet();

        string connectionsString = null;
        string sql = null;

        connectionsString = "Data Source=.\\SQLEXPRESS;AttachDbFilename=|DataDirectory|\\AnimalMotel.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
        sql = "SELECT * From Guests";

        connection = new SqlConnection(connectionsString);

        try
        {
            connection.Open();
            command = new SqlCommand(sql, connection);
            adapter.SelectCommand = command;
            adapter.Fill(dataset);
            adapter.Dispose();
            command.Dispose();
            connection.Close();

            MessageBox.Show(Convert.ToString(dataset.Tables[0].Rows[1].ItemArray[1]), "This is only a test!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }
        catch
        {
            throw;
        } 
    }
4

0 に答える 0