vb.net ajax使用,使用VB.NET,AJAX和NPGSQL连接到PostgreSQL

经过一番挖掘,我找到了解决这个问题的办法。这里是我使用NPGSQL数据连接器,ASP.NET(VB.NET),Javascript和AJAX从PostGresql数据库查询的解决方案。在我的应用程序中,名为“ajaxyThing”的AJAX函数从OpenLayers地图中的自定义控件接收一个值,但是您可以将任何值传递给该函数。

这里是Ajax的功能在我的JavaScript文件中的代码:

function ajaxyThing (selectedFT) {

var xmlhttp; //CREATE THE VARIABLE TO HOLD THE XMLHTTPRequest OBJEcT

if (window.XMLHttpRequest)

{// code for IE7+, Firefox, Chrome, Opera, Safari THESE BROWSERS SUPPORT THE XMLHTTPRequest OBJECT

xmlhttp=new XMLHttpRequest(); //CREATE THE XMLHTTPRequest OBJECT

}

else

{// code for IE6, IE5 THESE BROWSERS DO NOT SUPPORT THE XMLHTTPRequest OBJECT AND NEED AND ACTIVEXOBJECT

xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); //CREATE THE ActiveXObject

}

//When using Async = true specify a function to execute when the reponse is ready in the onradystatechange event

xmlhttp.onreadystatechange = function() {

if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {

document.getElementById("divAttributes").innerHTML = xmlhttp.responseText;

}

}

//TO SEND A REQUEST TO A SERVER, WE USE THE open() AND send() METHODS OF THE XMLHttpRequest object

xmlhttp.open("GET", "Handler.ashx?q="+ selectedFT, true);

xmlhttp.send();

}

然后在Microsoft Visual Web Developer速成2010我创建了一个Web处理程序(ashx的)文件,并从我的AJAX功能传递的变量进去。 我将变量“selectedFT”传递给Visual Studio Web处理程序。下面是从网上处理程序的代码:

Imports System

Imports System.Web

Imports Npgsql

Imports System.Data

Public Class Handler : Implements IHttpHandler

Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest

context.Response.Expires = -1

Dim q = context.Request.QueryString("q")

Dim pgConnection As NpgsqlConnection = New NpgsqlConnection

Dim pgCommand As NpgsqlCommand = New NpgsqlCommand

Dim pgConnectionString As String

Dim sda As NpgsqlDataAdapter

Dim ds As DataSet

ds = New DataSet

pgConnectionString = "Server=localhost;Port=5432;Userid=myPostGresUserId;Database=myDatabaseName;password=myPassword;Protocol=3;SSL=false;Pooling=true;MinPoolSize=1;MaxPoolSize=20;Encoding=UNICODE;Timeout=15;SslMode=Disable"

pgConnection.ConnectionString = pgConnectionString

pgConnection.Open()

pgCommand.Connection = pgConnection

pgCommand.CommandType = CommandType.Text

pgCommand.CommandText = "SELECT * FROM ""myTable"" WHERE ""myValue"" = '" & q & "';"

sda = New NpgsqlDataAdapter(pgCommand)

sda.Fill(ds)

If pgConnection.FullState = ConnectionState.Open Then

context.Response.Write("

Dim dr As DataRow

Dim dt As DataTable

dt = ds.Tables(0)

For Each dr In dt.Rows

context.Response.Write("

Column #1 Name:" & dr.Item(0) & "")

context.Response.Write("

Column #2 Name:" & dr.Item(1) & "")

context.Response.Write("

Column #3 Name:" & dr.Item(2) & "")

Next

ds.Dispose()

context.Response.Write("

")

Else

context.Response.Write("pgConnection did not open successfully.")

End If

pgConnection.Close()

End Sub

Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable

Get

Return False

End Get

End Property

End Class

我不会声称这是解决问题的最佳解决方案 - 但它的工作原理。我会接受任何建议,你可能会使这更优雅。谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值