2014-09-06 31 views
0

場景最好的方法執行SQL在ASP.NET

我有一個問題關於最佳實踐和與SQL Server數據庫的代碼在ASP.NET背後交互的最有效方式。

目前我正在編寫一個應用程序,該應用程序具有用於讀取和寫入不同SQL Server表的多種表單。

到目前爲止,我做到這一點的方式是從aspx頁面的代碼隱藏中收集信息並將其傳遞給特定的類。例如:

Customer.aspx頁面createNewCustomer_click事件我創建了一個名爲Customer的類的新實例,並通過屬性收集客戶信息。然後在Customer類中調用insertNewCustomer方法將信息插入到數據庫中。

public sub insertNewCustomer() 
    dim sqlCommand as string="INSERT INTO CUSTOMER ([NAME],[REGNUM]) VALUES (@NAME,@REGNUM)" 
    Dim paramName() as string={"NAME","REGNUM"} 
    Dim paramValue() as object={_name,_regnum}  ' variables gathered via properties 

    Dim sql as new CSQL(sqlCommand,paramName,paramValue,paramName.Count()) 
    sql.process() 
end sub 

所以以後我創建一個字符串SqlCommand,我創建一個數組來保存參數名稱和一個數組來保存參數值。

然後,我將該信息傳遞給另一個類CSQL,該類創建了SqlConnectionSqlCommand並添加了SqlParameter

我遇到的問題是,這個過程是服用大量的時間來創建一個單一的形式,每個SQL操作的問題。此外,它很難維護,例如,如果SQL表中有更改,我需要更改Customer類中指定的所有SqlCommand

問題

我想知道的是如何在vb.net中創建類更有效地與SQL Server數據庫進行交互,並採取更少的時間創建,維護和調試代碼爲他們。

+1

看看實體框架 – 2014-09-06 11:12:34

+0

謝謝John。你的意思是使用數據集,dataTables和表格適配器 – JustLearning 2014-09-06 11:19:32

+0

不,他的意思是使用Entity框架或類似的東西,這對你最有用。然而,請注意,沒有什麼比「最佳方法」,只適用於您當前的情況,需求,偏好等最好的方法。您必須撥打電話,並選擇最適合您的情況。 – walther 2014-09-06 11:21:43

回答

1

有很多工具,擴展和框架在創建Data Access Layer部分代碼方面做得很好,尤其是SqlMetalLINQ to SQLEntity Framework

如果您的數據庫是Microsoft SQL Server,我推薦使用LINQ to SQL,它傾向於生成更清潔,更好的SQL,並且最重要的是,它隨.NET Framework一起提供,因此您不需要部署其他庫。

如果您使用其他數據庫服務器,Entity Framework是您的最佳選擇。