FAQ |
Kalender |
2016-09-09, 01:32 | #1 | ||
|
|||
Mycket flitig postare
|
Hello, tänkte bara hör med er vilket sätt ni föredrar och om ena är bättre än den andra.
Eller ni kanske har ett annat sätt som ni tycker är att föredra dela gärna med er. alternativ 1: Kod:
string strConnectionString = ConfigurationManager.ConnectionStrings["MySQL"].ConnectionString; using (MySqlConnection sqlConn = new MySqlConnection(strConnectionString)) { MySqlCommand cmd = new MySqlCommand(strSql, sqlConn); sqlConn.Open(); cmd.ExecuteNonQuery(); } alternativ 2: Kod:
string strConnectionString = ConfigurationManager.ConnectionStrings["MySQL"].ConnectionString; MySqlConnection sqlConn = new MySqlConnection(strConnectionString); MySqlCommand cmd = new MySqlCommand(strSql, sqlConn); sqlConn.Open(); cmd.ExecuteNonQuery(); sqlConn.Close(); |
||
Svara med citat |
2016-09-09, 08:11 | #2 | ||
|
|||
Har WN som tidsfördriv
|
Jag skrev enligt alt 1 tidigare (använder entity framework numera).
Det är bra kutym att använda using och måsvingarna. Using ropar på close och dispose, då riskerar du inte att glömma close. Det finns givetvis undantag när du själv vill styra, exempelvis vid transaktioner. |
||
Svara med citat |
2016-09-09, 11:33 | #3 | |||
|
||||
Mycket flitig postare
|
Vet inte vilka behov du har men jag rekommenderar att du labbar lite med EntityFramework om du jobbar med RDBMS. Du kommer bli mer produktiv och det är mycket trevligare att jobba med.
Använd Dependency Injection (DI) istället för att new:a upp dina instanser. Det är sjukt mycket smidigare. DI gör bl.a. att du slipper skriva new Foo(), new Bar(); på olika ställen i koden. DI-containern sköter det åt dig så länge du reggar dina beroenden i ett sorts register. Startup.cs (eller vad du nu har för entry point i din app): Kod:
public class Startup { public void Configuration(IAppBuilder app) { var builder = new ContainerBuilder(); builder.Register<IDbConnection>(context => new MySqlConnection(ConfigurationManager.ConnectionStrings["MySQL"].ConnectionString)) .InstancePerRequest(); var container = builder.Build(); DependencyResolver.SetResolver(new AutofacDependencyResolver(container)); } } Kod:
public class HomeController : Controller { private readonly IDbConnection connection; public HomeController(IDbConnection connection) { this.connection = connection; } public ActionResult Index() { //här finns connection tillgängligt "automagiskt" } public ActionResult About() { //här finns connection tillgängligt "automagiskt" } } Lägg märke till hur tydlig koden blir; för att kunna använda den här klassen behöver man tillhandahålla en implementation av IDbConnection. Just det här fallet med en Controller är kanske inte det bästa men du fattar säkert principen. |
|||
Svara med citat |
Svara |
|
|