方案
我有一个关于最佳实践的问题,以及从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
的班级,该班级会创建SqlConnection
,SqlCommand
并添加SqlParameter
。
问题
我遇到的问题是这个过程需要花费大量时间来创建单个表单和每个SQL操作。此外,它很难维护,例如,如果SQL表中有更改,我需要更改SqlCommand
类中指定的所有Customer
。
问题
我想知道的是如何在vb.net中创建类以更有效地与SQL Server数据库交互,并花费更少的时间来为它们创建,维护和调试代码。
答案 0 :(得分:1)
有很多工具,扩展和框架可以很好地创建代码的Data Access Layer部分,最明显的是SqlMetal LINQ to SQL或Entity Framework
如果您的数据库是Microsoft SQL Server,我建议使用LINQ to SQL,它往往会生成更干净,更好的SQL,而且最大的优点是它随.NET Framework一起提供,因此您不需要部署额外的SQL库。
如果您正在使用其他数据库服务器,那么Entity Framework是您的最佳选择。