gpt4 book ai didi

javascript - 如何通过点击事件在数据库中插入纬度和经度?

转载 作者:行者123 更新时间:2023-12-03 10:01:31 25 4
gpt4 key购买 nike

使用 ASP。我正在尝试将用户的位置(纬度,经度)存储到数据库中。这提出了问题:

我想通过单击按钮获取谷歌地图的经度和纬度值,我在数据库中得到了 0 个值。我的数据库有两个字段的经度和纬度,它们具有十进制数据类型。

我也收到这个错误

an-unhandled-exception-of-type-system-data-sqlclient-sqlexception-occured-in-system-data-dll in cmd1.ExecuteNonQuery(); line

这是我第一次尝试的示例代码:

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head id="Head1" runat="server">
<title></title>
</head>
<body>
<script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script type="text/javascript">
var long = 0;
var lat = 0;
window.onload = function () {
var mapOptions = {
center: new google.maps.LatLng(18.9300, 72.8200),
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var infoWindow = new google.maps.InfoWindow();
var latlngbounds = new google.maps.LatLngBounds();
var map = new google.maps.Map(document.getElementById("dvMap"), mapOptions);
google.maps.event.addListener(map, 'click', function (e) {
long = e.latLng.lng();
lat = e.latLng.lat();
document.getElementById("lat").value = lat;
document.getElementById("lng").value = long;
alert("Latitude: " + lat + "\r\nLongitude: " + long);
});
}
</script>

<form id="myForm" runat="server">
<div id="dvMap" style="width: 300px; height: 300px">
</div>
<asp:HiddenField ID="lat" runat="server" />
<asp:HiddenField ID="lng" runat="server" />
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />

</form>
</body>

下面是 .aspx 代码隐藏文件。我们在按钮的Click事件期间将经度和纬度保存到数据库中:

  protected void Button1_Click(object sender, EventArgs e)
{

Decimal latitude = Convert.ToDecimal(lat.Value);
Decimal longitude = Convert.ToDecimal(lng.Value);
string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
SqlConnection con = new SqlConnection(constr);


string query1 = "insert into Courses(longi,lati) values (@lati, @longi)";

SqlCommand cmd1 = new SqlCommand(query1, con);
cmd1.Parameters.AddWithValue("@lati", latitude);
cmd1.Parameters.AddWithValue("@longi", longitude);

con.Open();

cmd1.ExecuteNonQuery();


con.Close();
}

最佳答案

您可能无法在隐藏字段中获取值,因此 null 值将进入数据库,从而导致错误。并且您没有在隐藏字段中获取值,因为您已经创建了这些 runat="server",因此 ID 发生了更改,并且您正在通过 在 javascript 中设置值IdId 已更改。因此,您需要做的是将隐藏字段的 ClientIDMode 属性设置为 static,如下所示

<asp:HiddenField ID="lat"  ClientIDMode="Static" runat="server" />
<asp:HiddenField ID="lng" ClientIDMode="Static" runat="server" />

关于javascript - 如何通过点击事件在数据库中插入纬度和经度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30569289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com