Как я могу программировать на ASP.net с использованием PHP как методы - PullRequest
0 голосов
/ 24 января 2009

Я программист на PHP и хочу разработать веб-сайт с использованием визуального веб-разработчика .net Я знал, что у asp.net много разных подходов в работе с базой данных. Тем не менее, я знаком с PHP в программировании, например:

$query = "select * from table where user_id > 2"
$result = mysql_query($query);

while($row = mysql_fetch_array($result)){

echo "username is: ".$row["username"]."<br>"; }

вопрос в том, "могу ли я иметь дело с asp.net PHP-способом?"

Ответы [ 4 ]

4 голосов
/ 24 января 2009

Конечно ... изучите C # (похожий синтаксис) Или разработайте, используя одно из следующего:

Другие языки, работающие на .NET

Мое честное предложение: если вы хотите разрабатывать ASP.NET или .NET в целом, вам следует изучить C #. Я сделал, и я счастлив, что сделал это.

2 голосов
/ 24 января 2009

C # 3.0 предлагает очень мощный синтаксис, который позволяет взаимодействовать с базой данных как естественным, так и безопасным образом (с использованием параметризованных запросов). Ваш запрос в C # с LINQ2SQL будет выглядеть так:

var query = from t in context.table
            where t.user_id > 2
            select t;

Вы, вероятно, использовали бы Repeater в своем представлении, чтобы вы могли просто предоставить свой запрос в качестве источника данных (есть способы сделать это и в разметке) в вашем коде.

// use ToList so context can be disposed
nameRepeater.DataSource = query.ToList(); 

Ваша разметка будет выглядеть так:

<asp:Repeater runat="server" ID="nameRepeater">
   <ItemTemplate>
   username is:
   <asp:Label runat="server" 
              ID="nameLabel"
              Text='<%= Bind("username") %>' />
   <br />
</asp:Repeater>

(разделение строк для удобства чтения)

Или вы можете использовать ASP.NET MVC, в этом случае код выбора будет в вашем контроллере, и вы можете использовать нечто более похожее на ваш PHP-синтаксис в строго типизированном представлении.

<% foreach (Table t in ViewData.Model) { %>
   username is: <%= t.username %><br/>
<% } %>
2 голосов
/ 24 января 2009

Возможно, вам следует подумать о том, как вы программируете. Смешивать логику, представление и доступ к данным не очень хорошая идея на любом языке. Пример, который вы показали, это не «путь PHP». Да, можно написать так в php, но это не очень хорошая практика. Я думаю, что, изучая asp.net, вы также можете многое узнать о программировании, и вам действительно не следует пытаться программировать в asp.

1 голос
/ 24 января 2009

Есть много способов в asp.net. Это немного сбивает с толку, но все они в основном одинаковы. Разница заключается в типе доступа к данным, который вы используете.

Использование Enterprise Library (вам нужно скачать это), вероятно, один из ближайших способов:

Database database = DatabaseFactory.CreateDatabase();
string sqlCommand = @"SELECT * FROM Users WHERE UserID=@UserID";
System.Data.Common.DbCommand dbCommand = database.GetSqlStringCommand(sqlCommand);

DataSet dataSetGroup = database.ExecuteDataSet(dbCommand);
DataTable dt = dataSetGroup.Tables[0];

foreach (DataRow dr in dt.Rows)
{
    Response.Write("User name is: " + dr["Username"].ToString() + "<br/>");
}

Enterprise Library - это просто библиотека Microsoft, которая упрощает доступ к данным. Если вы не используете его, вы можете получить доступ к базе данных напрямую, но это займет еще несколько строк, которые обрабатывают открытие и закрытие соединения данных, и вы должны быть более осторожны с открытием и закрытием соединений.

Другие способы сделать это:

  1. Использовать строго типизированные наборы данных
  2. Используйте LinqToSql или LinqToEntities и ADO.net Framework

Они все разные, но схожи по структуре, где вы запрашиваете базу данных, а затем выполняете foreach (вы также можете использовать while) для циклического просмотра ваших данных.

Я недавно использовал LinqToSql и предпочитаю этот метод. В блоге Скотта Гу есть хорошая серия сообщений о том, как использовать LinqToSql (ссылка на последний пост, чтобы вы могли увидеть все предыдущие): http://weblogs.asp.net/scottgu/archive/2007/09/07/linq-to-sql-part-9-using-a-custom-linq-expression-with-the-lt-asp-linqdatasource-gt-control.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...