sql-server – 使用ajax运行db query(sql server 2005).可能吗?

我从未与ajax合作过.

我需要知道是否可以使用ajax在db上运行查询(sql server 2005).

我的目标是通过刷新页面来运行查询.

你有什么想法吗?

解决方法

正如 MarkusQ所说,不可能直接执行此操作,但您可以调用Web服务或页面方法来执行数据库查询并将结果返回给客户端.

对于页面方法这样的事情(这是我的头脑和未经测试.我也假设您正在使用asp.net 3.5)

public partial class _Default : Page 
{
  [WebMethod]
  public static string PerformDatabaseQuery()
  {
      using (sqlConnection con = new sqlConnection(ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString)
      {
          using (sqlCommand cmd = con.CreateCommand())
          {
              cmd.CommandText = "SELECT records FROM myTable";
              cmd.CommandType = CommandType.Text;

              con.open();

              sqlDataReader reader = cmd.ExecuteReader();
              StringBuilder sb = new StringBuilder();

              while (reader.Read())
              {
                   sb.Append((string)reader["records"]); 
                   //May want to do some other formatting here
              }

              return sb.ToString();
          }
      }
  }
}

然后从客户端调用页面方法.我将在这里使用jQuery

$.ajax({
  type: "POST",url: "Default.aspx/PerformDatabaseQuery",data: "{}",contentType: "application/json; charset=utf-8",dataType: "json",success: function(result) {
    //Do something with the returned data
  }
});

您可以使用JavaScript和在ScriptManager控件上设置EnablePageMethods = true时生成的JavaScript代理类来调用它.

function CallPerformDatabaseQuery()
{
    PageMethods.PerformDatabaseQuery(onSuccess,onFailed);
}

function onSuccess(result,userContext,methodName)
{
  // Do something with returned data
}

function onFailed(error,methodName)
{
  alert("An error occurred")
}

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...