在代码后面和SqlDataSource编写查询

Sat*_*ish 3 sql asp.net

我始终认为,与使用SqlDataSource编写SQL查询相比,在后面的代码中编写SQL查询并不好

SqlDataAdapter ad = new SqlDataAdapter("SELECT * FROM Categories", myConnection);

DataSet ds = new DataSet();

ad.Fill(ds, "Categories");

myGridView.DataSource = ds;

myGridView.DataBind();
Run Code Online (Sandbox Code Playgroud)

<asp:SqlDataSource ID="SqlDataSource1" runat="server"
  ConnectionString="<%$ ConnectionStrings:myConnection %>"
  SelectCommand="SELECT * FROM Categories" />
Run Code Online (Sandbox Code Playgroud)

我觉得使用SqlDataSource是安全的,易于维护.我关心的是真的吗?请说明理由.

fle*_*esh 13

我不会在完全停止的代码中编写SQL查询.数据访问层怎么样?

如果要更改后备存储,会发生什么?您将不得不重新编写所有代码隐藏的代码.

如果您需要在多个地方使用数据,会发生什么?你重复代码.

在您的代码中编写SQL查询之前,您需要认真考虑如何构建解决方案.在质疑SqlDataSource对象的"安全性"之前,请考虑分离和可维护性.认真.


Ste*_*owe 8

SqlDataSource中的代码隐藏和SQL查询中的SQL查询几乎相同

他们在安全方面都是一样的; 至于更容易维护,在大多数情况下SqlDataSource可能会更容易一些

数据访问层是首选,但SqlDataSource有时是一个很好的权宜之计.如果您还没有数据访问层并且它是为了简单/一次性的东西,我不会用报纸打电话给你使用一个;-)