在ASP.NET中执行SQL的最佳方法

时间:2014-09-06 11:02:22

标签: sql asp.net sql-server vb.net

方案

我有一个关于最佳实践的问题,以及从ASP.NET背后的代码与SQL Server数据库交互的最有效方法。

目前我正在编写一个应用程序,它有多种形式可供读取和写入不同的SQL Server表。

到目前为止,我完成它的方法是从aspx页面的代码隐藏中收集信息并将其传递给特定的类。例如:

Customer.aspx事件的createNewCustomer_click页面中,我创建了一个名为Customer的类的新实例,并通过属性收集客户信息。然后我在insertNewCustomer类中调用Customer方法将信息插入数据库。

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表中有更改,我需要更改SqlCommand类中指定的所有Customer

问题

我想知道的是如何在vb.net中创建类以更有效地与SQL Server数据库交互,并花费更少的时间来为它们创建,维护和调试代码。

1 个答案:

答案 0 :(得分:1)

有很多工具,扩展和框架可以很好地创建代码的Data Access Layer部分,最明显的是SqlMetal LINQ to SQLEntity Framework

如果您的数据库是Microsoft SQL Server,我建议使用LINQ to SQL,它往往会生成更干净,更好的SQL,而且最大的优点是它随.NET Framework一起提供,因此您不需要部署额外的SQL库。

如果您正在使用其他数据库服务器,那么Entity Framework是您的最佳选择。