我已经创建了一个本地数据库和一个WCF服务,该服务应该在名为Vehicles的表中插入内容,但我不断收到异常。该服务由网站使用。我的.svc文件的代码是:
string Message;
using (SqlConnection con = new SqlConnection("Server=localhost;Database=Vehicles;"))
{
con.Open();
using (var cmd = new SqlCommand("INSERT INTO Vehicles(make,model,reg_nr,build_date,colour) values(@make,@model,@reg_nr,@build_date,@colour)", con))
{
cmd.Parameters.AddWithValue("@make", carInfo.Make);
cmd.Parameters.AddWithValue("@model", carInfo.Model);
cmd.Parameters.AddWithValue("@reg_nr", carInfo.Reg_nr);
cmd.Parameters.AddWithValue("@build_date", carInfo.Build_date);
cmd.Parameters.AddWithValue("@colour", carInfo.Colour);
int result = cmd.ExecuteNonQuery();
if (result == 1)
{
Message = carInfo.Make + " " + carInfo.Model + " => Success!";
}
else
{
Message = "Oops!";
}
con.Close();
return Message;
}
}
我在con.Open();
的标题中列出了例外情况。 build_date
它也是nvarchar(50),因为我想首先使插入工作。
为什么它会给我这个例外?
答案 0 :(得分:0)
确保确切的数据库连接和列,数据类型。
答案 1 :(得分:0)
我有这个代码,这很好用!
using (connection = new SqlConnection(Auth2Manager.getAuthConnectionString()))
{
SqlCommand cmd = new SqlCommand("INSERT INTO " + Tables.TABLE_USERS + " (" + Columns.USER_NAME + ","
+ Columns.PASSWORD + "," + Columns.TOKEN + ","
+ Columns.CREATED_DATE + "," + Columns.UPDATED_DATE + "," + Columns.UPDATED_BY
+ "," + Columns.IS_ACTIVE + "," + Columns.APP_ID + ")" +
" VALUES (@UserName, @Password, @Token, @CreatedDate, @UpdatedDate, @UpdatedBy, @IP, @IsActive, @AppId)");
cmd.CommandType = System.Data.CommandType.Text;
cmd.Connection = connection;
string token = Helper.generateUniqueToken();
tokenGenerated = token;
Console.WriteLine(token);
cmd.Parameters.AddWithValue("@UserName", user.UserName);
cmd.Parameters.AddWithValue("@Password", user.Password);
cmd.Parameters.AddWithValue("@Token", token);
dateNow = DateTime.Now;
date = dateNow.Year.ToString() + "-" + dateNow.Month.ToString() + "-" + dateNow.Day.ToString();
cmd.Parameters.AddWithValue("@CreatedDate", date);
cmd.Parameters.AddWithValue("@UpdatedDate", date);
cmd.Parameters.AddWithValue("@UpdatedBy", user.UserName);
cmd.Parameters.AddWithValue("@IsActive", 1);
cmd.Parameters.AddWithValue("@AppId", user.ApplicationID);
connection.Open();
resultCount = cmd.ExecuteNonQuery();
}
if (resultCount > 0)
{
return true;
}
else
return false;
}
else {
tokenGenerated = null;
return false;
}
在设置 SqlCommand 的所有参数后尝试打开连接。此外!我有这种形式Data Source=PP-DEV-DMS-01;Initial Catalog=SalesDWH2;Integrated Security=SSPI
的连接字符串。我希望这会有所帮助!
由于