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;
}
}