Tôi mới đến SQL ServerSQL Server tên cột không hợp lệ khi thêm chuỗi giá trị
tôi đã tạo ra bàn của tôi như thế này:
CREATE TABLE Accidents (
Id INT NOT NULL PRIMARY KEY IDENTITY,
GUID VARCHAR(100),
Latitude VARCHAR(100),
Longitude VARCHAR(100),
PhotoName VARCHAR(100)
)
và tôi đã tạo ra một dịch vụ web để chèn dữ liệu vào bảng đó, như sau:
SqlConnection con = new SqlConnection(@"workstation id=DatabaseSample.mssql.somee.com;packet size=4096;user id=???;pwd=???;data source=DatabaseSample.mssql.somee.com;persist security info=False;initial catalog=DatabaseSample");
public string addAccidentToDatabase(string GUID, string imageBase64String, string latitude, string longitude, string photoName)
{
SqlCommand cmd = new SqlCommand("INSERT INTO Accidents (GUID,Latitude,Longitude,PhotoName) VALUES ("
+ GUID + "," + latitude + "," + longitude + "," + photoName + ")", con);
try
{
con.Open();
cmd.ExecuteNonQuery();
}
catch (Exception e)
{
return e.Message;
}
finally
{
con.Close();
}
return "succeeded";
}
Tất cả nội dung đó được lưu trữ trên máy chủ lưu trữ miễn phí.
Khi tôi kiểm tra dịch vụ web từ VS2010 và khi tôi chuyển số cho tất cả các thông số, một hàng mới được thêm thành công vào bảng. Nhưng khi tôi chuyển ít nhất một chuỗi cho dịch vụ, ví dụ "a", tôi nhận được kết quả này:
<string xmlns="http://tempuri.org/">Invalid column name 'a'.</string>
và hàng không được thêm vào. Tôi tự hỏi tại sao anh ta coi "a" như một tên cột? Bất cứ ai cũng có thể giúp đỡ?
lý do bỏ phiếu xuống? Tôi chỉ yêu cầu :) –
+1 để chống lại downvote ngu ngốc. Các bạn, tôi nghĩ đây là nơi mọi người có thể đặt câu hỏi? Cảnh sát cảnh sát thường không ra ngoài cho đến sáng thứ Hai. –
[Thói quen xấu để đá: chọn loại dữ liệu sai] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/12/bad-habits-to-kick-using-the-wrong-data- type.aspx) - bạn nên luôn luôn sử dụng kiểu dữ liệu thích hợp nhất - đó là những gì họ đang có cho, sau khi tất cả! Vì vậy, một cột 'GUID' phải thuộc loại' UNIQUEIDENTIFIER' và các giá trị số như 'Longitude' và' Latitude' phải là 'DECIMAL (16,4)' hoặc một cái gì đó tương tự - ** not ** 'varchar (100) '! –