MS Access:SQL更新语法错误,但原因是什么?
我在这个SQL中得到了一个语法错误,似乎不知道为什么 SQL更新在出现以下错误时返回:MS Access:SQL更新语法错误,但原因是什么?,sql,ms-access,syntax-error,Sql,Ms Access,Syntax Error,我在这个SQL中得到了一个语法错误,似乎不知道为什么 SQL更新在出现以下错误时返回: UPDATE Tankstationer SET Long='12.5308724', Lat='55.6788735' WHERE Id = 2; 这是我的密码: foreach (var row in reader) { var id = reader.GetInt32(0); var adress = reader.GetString(1); var zip = reader.G
UPDATE Tankstationer
SET Long='12.5308724', Lat='55.6788735'
WHERE Id = 2;
这是我的密码:
foreach (var row in reader)
{
var id = reader.GetInt32(0);
var adress = reader.GetString(1);
var zip = reader.GetDouble(2);
var city = reader.GetString(3);
var adressToParse = adress + " " + zip + " " + city;
GMapGeocoder.Containers.Results result = Util.Geocode(adressToParse, key);
foreach (GMapGeocoder.Containers.USAddress USAdress in result.Addresses )
{
var google_long = convertNumberToDottedGoogleMapsValid(USAdress.Coordinates.Longitude);
var google_lat = convertNumberToDottedGoogleMapsValid(USAdress.Coordinates.Latitude);
Message.Text = "Lattitude: " + google_long + System.Environment.NewLine;
Message.Text = "Longitude: " + google_lat + System.Environment.NewLine;
string updatesql = "UPDATE Tankstationer SET Long='" +google_long+ "', Lat='" +google_lat+ "' WHERE Id = " +id+"";
OleDbCommand update = new OleDbCommand();
update.CommandText = updatesql;
update.Connection = conn;
reader = update.ExecuteReader();
Message.Text = "Done";
}
}
错误可能是因为您正在执行读取器,但您的查询没有返回任何内容。调用update.ExecuteNonQuery()。尝试使用update.ExecuteNonQuery()而不是reader 看到其他评论太晚了 我不经常使用access,但我的access正在使用尝试: “id”被设置为Int32(var id=reader.GetInt32(0)),但您正在将其连接到字符串(其中id=“+id+”;)。请确保将id转换为字符串值,而不是int。“Long”是Access中的保留字。如果无法更改架构以调用该列,请将其放在括号中:
UPDATE Tankstationer
SET [Long]='12.5308724', Lat='55.6788735'
WHERE Id = 2;
它返回的错误消息是什么?为什么要将OleDB与MSSQL Server一起使用?“更新语句中存在语法错误”不,这是一个accdb im打开,但使用SQL更新dbstring connection=“Provider=Microsoft.ACE.OleDB.12.0;数据源=“+Directory.GetCurrentDirectory()+”/Tankstationer.accdb;“conn.ConnectionString=connection;conn.Open();Errr..您没有看到我的答案吗?仍然会收到与使用update.ExecuteOnQuery()之前相同的错误。如果我将Id转换为字符串,则会收到以下错误:无法将“System.Int32”类型的对象转换为“System.string”类型。