前回の続き(?)。
Providerに依存しないコードを書いてみた。
- ConnectionStringSettings css = ConfigurationManager.ConnectionStrings["MyConnection"];
- DbProviderFactory factory = DbProviderFactories.GetFactory(css.ProviderName);
- DbConnectionStringBuilder sb = factory.CreateConnectionStringBuilder();
- sb.ConnectionString = css.ConnectionString;
- //この辺はProviderに依存するよなぁ
- sb.Add("Password", "xxxx");
- using (DbConnection connection = factory.CreateConnection())
- {
- connection.ConnectionString = sb.ConnectionString;
- connection.Open();
- //factory.CreateCommand()でもいいけど、こっちの方が素直な気がする。
- DbCommand command = connection.CreateCommand();
- //ここも依存することが多いよね。
- command.CommandText = "SELECT * FROM TABLE1 WHERE ID = ?";
- DbParameter p = factory.CreateParameter();
- p.DbType = DbType.Int32;
- p.Value = 1;
- command.Parameters.Add(p);
- using (DbDataReader reader = command.ExecuteReader())
- {
- while (reader.Read())
- {
- reader.GetInt32(0);
- }
- }
- }
0 件のコメント:
コメントを投稿