【发布时间】:2015-04-08 20:39:44
【问题描述】:
当我遇到这个未处理的异常时,我正在尝试将数据插入数据库:
System.Data.dll中发生了System.Data.SqlClient.SqlException类型的异常,但未在用户代码中处理
这是代码
public void addEvent(String username, int id, String date)
{
String conString = "Data Source=(LocalDB)\\v11.0;AttachDbFilename=\"C:\\Users\\SleekBook\\Documents\\Visual Studio 2013\\WebSites\\WebSite2\\App_Data\\Database.mdf\";Integrated Security=True";
using (SqlConnection con = new SqlConnection(conString))
{
String sqlStringS = "INSERT INTO Users (Username, EventID, Date) VALUES (@Username, @EventID, @Date)";
SqlCommand cmd = new SqlCommand(sqlStringS);
cmd.CommandType = CommandType.Text;
cmd.Connection = con;
cmd.Parameters.AddWithValue("@Username", username);
cmd.Parameters.AddWithValue("@EventID", id);
cmd.Parameters.AddWithValue("@Date", date);
con.Open();
cmd.ExecuteNonQuery();
}
}
如您所见,我尝试插入两个字符串和一个 int。
错误发生在:
cmd.ExecuteNonQuery();
附加信息:列名“EventID”无效。
列名“日期”无效。
列名正确。
【问题讨论】:
-
"列名正确。"他们不是。
-
你能给我们看看表结构吗?
-
非常抱歉我被困了几个小时,我什至没有注意到表名是错误的。
-
顺便说一句,
Date不是列的最佳名称 -
..因为
Date通常是一个保留字,可能会混淆解析器。还有就是太笼统了。最好使用Created_Date、Approved_Date或Event_Date,这也解释了值代表什么。